0

Web アプリの速度を最適化しようとしています。現在、画像の負荷を制御しています。

webCacheという名前の属性があり、それを使用して各画像オブジェクトの .src を処理します...

if (!webCache) src += "?rand="+Math.random();
img.src =src;

webCache が false の場合、random() を使用してランダムな値を追加して src var 値を更新します。次に、新しい src 値をオブジェクト イメージの src 属性に追加します。

私の質問は、ifwebCacheが true の場合、条件付きの if が実行されず、img.src =src;が等しく実行されるということです。値は同じで、src 値は変更されていませんが、画像は別のものである可能性があります....ここでブラウザはどのように動作しますか? 画像を更新しますか?

つまり、src の値が同じでも画像が別の場合、ブラウザはどのように動作するのでしょうか?

4

1 に答える 1

1

これは、最初に提供されたときの画像の http ヘッダーによって異なります。

サーバーは、常に画像を再フェッチするようにブラウザに指示したり、特定の期間または特定の時点まで画像を再フェッチしないようにしたりしている可能性があります。

ETag または Last-Modified ヘッダーも提供されている可能性があり、ブラウザーはサーバーに対して HEAD 要求を実行し、画像をダウンロードするか、ローカル コピーを使用するかを調べることができます。

関連するヘッダーの一部を次に示します。

  • キャッシュ制御
  • 期限切れ
  • 最終更新日
  • ETag

Google Chrome では、開発目的でキャッシュを無効にすることができます。F12 を押し、右下隅のホイールをクリックし、[一般] を選択して、[キャッシュを無効にする] にチェックを入れます。

于 2013-05-24T08:27:15.930 に答える