これらの 3 つの ID セレクターを (X)HTML 要素に適用すると、background 属性を通じて画像をオフスクリーンにプリロードできます。背景のCSS。これらの画像へのパスが同じである限り、ブラウザは、Web ページの他の場所で呼び出されたときに、レンダリング プロセス中にプリロードされた (キャッシュされた) 画像を使用します。シンプルかつ効率的で、JavaScript は必要ありません。
この方法は効率的ですが、まだ改善の余地があります。このメソッドを使用して読み込まれた画像は、ページ上の他のコンテンツと一緒に読み込まれるため、ページの全体的な読み込み時間が長くなります。この問題を解決するために、ページが読み込まれるまでプリロード時間を遅らせるための JavaScript コードを追加しました。コードは次のとおりです:
// より良い画像のプリロード @
http://perishablepress.com/ press/2009/12/ 28/3-ways-preload-images-css-javascript-ajax/ function preloader() {
if (document.getElementById) {
ドキュメント。 getElementById("preload-01 ").style.background = "url(http://domain.tld/image-01.png) no-repeat -9999px -9999px";
document.getElementById("preload-02) ").style.background = "url(http://domain.tld/image-02.png) no-repeat -9999px -9999px";
document.getElementById("preload-03").style.background = "url(http://domain.tld/image-03.png) no-repeat -9999px -9999px";
}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func()
}
}
addLoadEvent(preloader); >スクリプトの開始部分では、クラス セレクターを使用して要素を取得し、その要素に背景属性を設定して、さまざまな画像をプリロードします。
スクリプトの 2 番目の部分では、addLoadEvent() 関数を使用して、ページが読み込まれるまで preloader() 関数の読み込み時間を遅らせます。
ユーザーのブラウザで JavaScript が適切に実行されない場合はどうなりますか?非常に簡単です。ページが画像を呼び出すと、画像はプリロードされず、通常どおり表示されます。
上記の方法は場合によっては非常に効率的ですが、実際の実装プロセスでは時間がかかりすぎることが徐々にわかりました。 。代わりに、画像のプリロードには純粋な JavaScript を使用することを好みます。以下に、最新のすべてのブラウザで美しく機能する 2 つのプリロード方法を示します。