最初に、jQuery がキャッシュを無効にすることの意味を明確にします。
jQueryがキャッシュを無効にすると、URL の末尾にパラメーターとして 1 つの余分な乱数を追加するなど、何らかのトリックを使用して、ブラウザーによってファイルが再度読み込まれるようになります。
jQueryがキャッシュを有効にしている場合、何も強制せず、このファイルのヘッダーに設定したキャッシュを許可します。つまり、ファイル パラメーターのヘッダーを設定してブラウザー キャッシュに保存していない場合、ブラウザーは何らかの方法でファイルを再度読み込もうとします。
そのため、jQuery によるキャッシュを有効にすると、静的ファイルに正しいキャッシュ ヘッダーを設定してブラウザー キャッシュに保持する必要があります。
ブラウザがヘッダーの作成日を確認し、サーバーに接続してヘッダーを再度要求し、それを比較し、変更がない場合は再度ロードせず、サーバーに1回呼び出しを行うファイルの場合。
最大有効期間を設定し、その日付までサーバーに要求しないファイルの場合、ブラウザーはそれを見つけた場合、キャッシュから直接ロードします。
要約すると、ブラウザは、送信したヘッダーから
このcache:true
ファイルのキャッシュを決定します。
これcache:false
は、ファイルを再度ロードすることを強制します。
キャッシュ関連の質問:
JavaScript ファイルのキャッシング
IIS7 Cache-Control
内部コード
のgetScript()
is calling the jQuery.get()
witch は、Ajax 関数の短縮形です。
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
したがって、 を呼び出すgetScript()
ことで ajax 呼び出しが行われ、そもそもこれがあなたの考えである場合、jQuery はファイルのいかなる種類のキャッシュも保持しませんでした。
sript をロードするためのカスタム関数
グローバルな cache:true を作成することに勝てず、cache:true でロードする必要があるのは一部のファイルのみである場合は、カスタム関数を次のように作成できます。
function getScriptCcd(url, callback)
{
jQuery.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: true
});
};
これはグローバル キャッシュ パラメータの影響を受けず、最後にキャッシュ以外のパラメータを追加せずにスクリプト ファイルをロードします。