jQuery ajax Loadのキャッシュ使用を防止する方法


一、使い方jqueryのロード関数は他のファイルを要求して、現在のDOMにロードする呼び出しです。ロード方法の完全なフォーマットは、ロード(url、[data]、[calback])です。
*url:ファイルをインポートする住所です。*data:オプションパラメータ;Loadは静的なhtmlファイルだけではなく、ダイナミックスクリプト、例えばPHPファイルを導入することができますので、動的ファイルを導入する場合は、転送するパラメータをここに置いてもいいです。calback:オプションパラメータ;ロードメソッドを呼び出してサーバの応答を得て実行する別の関数です。
キャッシュというものは、ある程度ページのロードを速めていますが、しばしば私たちに迷惑をかけます。上記の文章では、jQueryでのロードの使い方を簡単に紹介しました。実際の運用では、ブラウザのキャッシュに問題があるかもしれません。例えば、私はIE 7でこの問題に遭遇しました。
jQuery Loadサンプルコード:

$(document).ready(function(){
  $("#labels").load("/blog/categories/labels.html");
  // , ID #labels DOM labels.html 。
});
labelsを更新した後、IE 7のロード方法は依然として古いlabelsを使っています。更新キーを押しても使えません。幸い、jQueryはajaxがキャッシュを使うことを防止する方法を提供しています。次の文をheadのjavascriptファイルに加えると、問題を解決できます。

$.ajaxSetup ({
    cache: false // AJAX
});
また、いくつかの方法でキャッシュを解決する方法を紹介します。注意:私はjQuery loadの問題でテストしたことがありません。これらの方法は参考にしてください。
1.ファイル名を変更します。例えば、labelsをlables_に変更します。new.ですが、これは方法がないので、普通は誰もこのようにしていません。
2.labels.に特定の時間を加えて、例えばlables.20081116。実際の仕事では、css/javascriptファイルを更新してから、このような方法でファイルがキャッシュされないようにします。
3.labels.ファイルのトップに以下の声明を追加します。
<META HTTP-EQUIV=「Pragma」CONTENT=「no-cache」><META HTTP-EQUID=「Expires」CONTENT=「-1」>
4.ロード関数はHTMLを呼び出すだけでなく、scriptを呼び出すこともでき、例えばLabels.phpは、phpファイルでheader関数を使用することができます。

<?php
header("Cache-Control: no-cache, must-revalidate");
?>
の他の2つのソリューション:要求パスに時間パラメータ値を追加して現在の時間とするか、フォームに隠しフィールドを追加して、このフィールドの値を現在の時間として設定します。