JavaScriptを使用してユーザーにとって怠zyなロードコンテンツのより良い方法は何ですか?
-
24-10-2019 - |
質問
たくさんの画像やその他のコードがあるページがあり、怠zyなロードがあればうまく機能します。
私はこれをnoscriptタグでやろうとしていましたが、IEで正しく機能していないことに気付きました。私がテストした他のすべてのブラウザ(FF、オペラ、クロム、サファリなど)で動作するので、私は少しイライラしています。
ある時点で、私は実際にこれをIEで実際に動作させていたと確信しています。しばらくの間、私は非常に頻繁にテストしています...しかし、それは今機能していませんが、私がGoogleが提案しているようですそれが機能しなかったこと。
私が試みていたことを示すコピーと貼り付けの簡単な例を次に示します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>lazy load with noscript</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<noscript>
<div>
<p>other content here</p>
<img src="http://www.google.com/images/logos/ps_logo.png" alt="lazy loading image test" />
</div>
</noscript>
<noscript>
<div>
<p>other content here 2</p>
<img src="http://www.google.com/images/logos/ps_logo2.png" alt="lazy loading image test 2" />
</div>
</noscript>
<script type="text/javascript">
var html = $("noscript:first").text();
alert(html);
$("body").append(html);
</script>
</body>
</html>
JavaScriptおよびJavaScriptを使用しないユーザーに使用されるHTMLは同じです。 jqueryを使用してコンテンツをタブにして、表示しやすくします。コンテンツはJavaScriptにタブにされているため、タブが開いたときに怠loadロードが必要なので、ページにかなりの添付ファイルがあるときに最初にダウンロードするのに何年もかかりません。
HTMLを複数回出力せずにこれを達成するにはどうすればよいですか?
解決
必要なのは、すべての画像をピクセルGIF(またはPNG)にポイントすることです。ユーザーが画像の近くにスクロールしているかどうかをチェックするスクリプトを作成し、JavaScriptを使用してピクセルを完全な画像と交換します。
私が書いたスクリプトでは、次のように見える画像タグがあります。
<img src="pixel.gif" data-img="path-to-full-img.jpg" />
あるいは、aを使用できます このようなプラグイン. 。注:このプラグインを以前に使用したことはありませんが、必要なのはそれだけだと思われます。
本当にハードコアを手に入れたいなら、hのようなものを使用してJavaScriptをレイジーロードすることができますead.js また control.js