2015-10-08 28 views
6

私はタスクがあります。画像のリストを取得するサーバーコールがあります。他の情報とともに、この情報を追加する必要があります。この情報は、天気予報がキャッシュまたはサーバーからロードされたものです。イメージがキャッシュからロードされているかどうかを確認してください。

私はAPI呼び出しのヘッダーを確認することができます方法はありますか?キャッシュからのものであれば、ステータスコード200が得られますが、このような余分な情報が(キャッシュから)得られます。それはキャッシュからではない場合、私は、ステータスコードのみ200

画像1を取得するキャッシュenter image description here

からロードされていないものについては、次の画像がキャッシュからロードされているもののためです。 enter image description here

私は答えはすでに与えられているか、それが重複していることを持っています。私はその解決策を試したが、うまくいかないようだ。また、それはクロム固有のものです、私はより一般的な何かすべてのブラウザで動作する必要があります探しています。なぜ私がその解決に向かなかったのかを説明してくれることを願っています。私はここで尋ねる前にそれを探しました。

応答を楽しみにしています。

+0

[画像をクロムにキャッシュされている場合を見つけるためにimage.completeを使用していますか?]の可能な重複(http://stackoverflow.com/questions/7844982/using-image-complete-to-find-if-image-is- Cached-on-chrome) –

答えて

3

ロードバインディングを選択的に処理する必要があります。イメージオブジェクトのプロパティcompleteをテストすることで、負荷を検証できます。例えば

$('.images_to_load').each(function(index, elem) 
{ 
    if (!elem.complete) { 
     $(elem).on('load', function(){ 
      console.log('image loaded from server'); 
     }); 
    } 
    else { 
     console.log('image loaded from cache'); 
    } 
}); 

このコードを使用する方法:上記のコードを実行するときに、ページ上のクラスimages_to_loadと(src属性のない)画像タグを有することが重要です。 src属性(url)を追加すると、イメージがキャッシュからロードされたかどうかを調べることができます。

+0

'.complete'の使用は必要ありませんが? onloadイベントを待つだけです。これは '$(elem).on( 'load'、function {});'これらの日です。あるいは '$(this).on()'でさえも。 – Shikkediel

+0

@Shikkedielあなたはもう少し詳しく教えてもらえますか?たぶんコードスピネッツかJSFiddle? – mohsinali1317

+2

@Shikkediel問題は、特定のブラウザでイメージがキャッシュから取り出されたときに、 'load()'が必ず発生するとは限りません。 –

関連する問題