2012-01-12 12 views
3

私はいくつかの画像を表示するこのウェブページを持っており、いくつかの画像はmouseoverイベントにあり、したがって表示に時間がかかります。 私は、マウスオーバーした画像を配置し、ブラウザのキャッシュに入れてマウスオーバーですばやく表示するdisplay noneプロパティで隠していました。私は、画像をブラウザのキャッシュに別の方法で挿入することができると考えていましたjQueryや何かを使用するようなので、私はイメージを隠しフォームに入れなくてはなりません。レンダリング前にキャッシュに画像を挿入することは可能ですか?

これが愚かな質問であるかどうかわかりません。

ご意見ください。

よろしく ヒマンシュー・シャーマは

答えて

7

イメージをプリロードするとキャッシュに格納され、マウスイベントのようなものに対してすぐに利用できるようになります。イメージの配列をプリキャッシュするサンプルコードについては、this postを参照してください。

function preloadImages(srcs) { 
    if (!preloadImages.cache) { 
     preloadImages.cache = []; 
    } 
    var img; 
    for (var i = 0; i < srcs.length; i++) { 
     img = new Image(); 
     img.src = srcs[i]; 
     preloadImages.cache.push(img); 
    } 
} 

// then to call it, you would use this 
var imageSrcs = ["src1", "src2", "src3", "src4"]; 

preloadImages(imageSrcs); 
+0

.cacheを使用してキャッシュにアクセスできますか? –

+0

@ techie_28 - 私はあなたの質問を理解していません。このコードは、イメージURLをイメージオブジェクトにロードしてイメージオブジェクトを作成します。このプロセスにより、ブラウザで画像がキャッシュされるため、画像URLがページの他の場所で使用されたときにブラウザのキャッシュからすぐに読み込まれるようになります。それらをプリロードした後は、URLを通常どおりに使用するだけで、ブラウザは自動的にキャッシュからキャッシュを取得します。自分でキャッシュにアクセスすることはありません。ブラウザがそれを行います。 – jfriend00

+0

私の質問は.cacheプロパティはここですか? –

3

あなただけのブラウザはすべてのそれ

+0

これはイメージをキャッシュに入れますか? –

+0

あなたは... 'new Image()。src =" "' –

+1

いいえ、それは動作します。ブラウザはそれをロードしてキャッシュします:) –

1

まず、小型および/または「マウスオーバー」の画像の使用スプライトをロードするようになります(new Image).src="http://path/to/img.jpg"を使用することができます。 また、はい、javascriptを使用して画像をプリロードできますが、ページの読み込み順を覚えているので、CSSより速くない可能性があります。

関連する問題