JS で IE キャッシュを自動的にクリアするメソッド— 一般的に使用される
index.asp?id=... や Index.aspx?id=... などの動的ファイルの場合、経験豊富な方を信頼しますプログラム ブラウザによるデータのキャッシュを禁止する方法は誰もが知っています。
しかし、静的ファイル (CSS、jpg、gif など) の場合、どのような状況でブラウザによるキャッシュを禁止する必要がありますか?
方法 1:
Dojo でこれを完了する簡単な方法を使用できます。preventCache 属性は dojo.xhrGet (post を含む) およびその他のメソッドに含まれています。この属性の意味は次のとおりです。ブラウザ キャッシュはデフォルトで有効になっています。それ以外の場合は、ブラウザ キャッシュが無効になるようにさまざまなパラメータが自動的に追加されます。この属性を「true」に割り当てるだけです。 方法 2:
document.write(" ver=113 の 113 はバージョン番号で、通常は CVS または他のツールによって生成される開発バージョン番号です。
これは実際にキャッシュすべきときに静的ファイルをキャッシュし、バージョンが更新されたときに最新バージョンを取得し、画像のキャッシュ
を更新して
js を効果的に利用して更新します。ブラウザのキャッシュをクリアする 2
ブラウザとサーバー間のネットワーク通信圧力を軽減するために、js、css、変更された画像などの静的ファイル、つまり HTTP がキャッシュされることがよくあります。これらのファイル Expires および Cache-Control パラメータを応答ヘッダーに追加し、キャッシュ時間を指定します。これにより、サーバーがこの間、ファイルは何度も更新されていますが、ブラウザ内のデータはまだキャッシュされている古いデータです。ブラウザが最新の変更されたデータを取得する方法はありますか?
はい、その方法は、次のように ajax を使用してサーバーから最新のファイルを要求し、要求ヘッダー If-Modified-Since および Cache-Control を追加することです:
$.ajax({
type: "GET",
url: "static/cache.js",
dataType: "text",
beforeSend :function(xmlHttp){
xmlHttp.setRequestHeader("If-Modified-Since","0"); xmlHttp.setRequestHeader("Cache-Control","no-cache");
}
ここでは jquery が使用されます。このようにして、ブラウザーは古いローカル ファイルを最新のものに置き換えます。もちろん、ここでのもう 1 つの問題は、どの JS、CSS、画像がサーバーによって更新されたかを認識する必要があるということです。これは、Cookie と時間バージョンを使用することで解決できます。
jquery には 1.2 以降 ifModified パラメータとキャッシュ パラメータがあるため、これらを自分で追加する必要はありません。ヘッダー
ifModified Boolean デフォルト: false
次の場合にのみリクエストの成功を許可します。これは、Last-Modified ヘッダーをチェックすることで行われ、ヘッダーを無視します。
cache Boolean デフォルト: true
false に設定されている場合は、jQuery 1.2 で追加されます。
コードをコピー
コードは次のとおりです: