0

重複の可能性:
XHRがキャッシュされたリソースを返すタイミングを検出するにはどうすればよいですか?

jqueryを使用して、このページにまだロードされていない場合にのみjavascriptファイルをロードするオートローダーを構築しました。

$.getScript();

まず、関数が存在するかどうかを確認し、存在しない場合はロードします。しかし、これはブラウザのキャッシュを説明することができません。私はその方法を理解できるかもしれないと思っていました。

私がそれに追加したいことの1つは、ユーザーが既にブラウザーのキャッシュにファイルを保存しているかどうかを確認することです。サーバーからのファイルがユーザーのブラウザーに既にキャッシュされているかどうかを確認して、サーバーへの呼び出しをスキップできるようにすることはできますか?

4

2 に答える 2

3

キャッシュは透過的に機能します。ファイルを要求し、ファイルがユーザーのキャッシュに存在する場合、キャッシュされたファイルが使用され、サーバーへの追加の要求はありません。ブラウザがそれを処理するので、説明しているケースについて心配する必要はありません。

.getScriptデフォルトでは、タイムスタンプ付きのクエリ引数を使用してこれを無効にしているため、次を使用するキャッシュ バイパスを無効にするだけで済みgetScriptます。

$.ajaxSetup({
  cache: true
});
于 2012-10-14T13:46:26.827 に答える
1

ブラウザーは、ファイルが既にキャッシュにあるかどうかに基づいて、要求が行われたときにサーバーから取得するかどうかを決定します。jQuery はタイムスタンプをアドバタイズするため、毎回新しいバージョンがロードされます。これは設定でオフにできますcache:true

コード内でページを再度ロードしないようにページに既にロードされているかどうかを確認する方法については、さまざまなことができます。

  1. スクリプトの読み込み時に要素または本体にクラスを追加し、新しい呼び出しを行う前にクラスが存在するかどうかを確認します。
  2. スクリプトで変数フラグを設定し、新しい呼び出しを行う前に存在を確認します
  3. 新しい呼び出しを行う前に、スクリプト内の関数が存在するかどうかを確認してください
于 2012-10-14T13:50:22.940 に答える