jQuery.getJSON のキャッシュ問題を解決するためのいくつかの方法

巴扎黑
リリース: 2017-07-03 09:43:36
オリジナル
1285 人が閲覧しました

今日テスト作業をしていて、jqueryのgetJsonメソッドはFirefoxで実行すると返された結果を取得できますが、ie8でテストするとリクエストが送信されないことが判明したので、問題を発見しました。その結果、紆余曲折を経て、ネット上の記事で解決策を見つけたので、抜粋して少し修正してみました。

1 呼び出しごとに異なるURLにする

方法: パラメータに乱数を追加します。
例 1:
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",Name:"john",random:Math.random()} ,function(responseText){}
例 2:
"xxx.aspx?randID="+Math.random
例 3:
"xxx.aspx?randID="+escape(new Date ())
2 キャッシュを False に設定します
$.ajax はキャッシュversion:

$.ajax({
type:"GET"
url:'test.html' ,
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});
ログイン後にコピー


3 を label.html ファイルの先頭に追加します。 :


4.load関数はHTMLを呼び出すだけでなく、labels.phpなどのスクリプトを呼び出すこともできます。phpファイルのヘッダー関数を使用できます:

< ;?php

header("キャッシュ制御: キャッシュなし、 must-revalidate");

?>
5 get メソッドの代わりに post を使用します。
Post メソッドを使用する場合の注意点:
ヘッダーの Context-Type を application/x-www に設定します。 -form- urlencode は、通常、XmlHttpRequestobjectSetRequestHeader("Context-Type","application/x-www-) を使用して、サーバーがエンティティにパラメーター 変数 があることを認識します。 form-urlencoded;").

例: xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

パラメーターは名前と値の 1 対 1 です。 -1 つの対応するキーと値のペア。値の各ペアはアンパサンドで区切られます。たとえば、var name=abc&sex=man&age=18、var name=update.php?abc&sex=man&age=18 に注意してください。 var name=?abc&sex=man&age=18 書き込みメソッドがすべて間違っています;

パラメータは Send (parameter) メソッドで送信されます。たとえば、Get メソッドと Post メソッドを区別します。 get メソッドの場合は、$username です。 = $_GET["username"]; post メソッドの場合、 $username = $_POST["username"]; 6 サーバー側に header(" を追加します。 Cache-Control: no-cache、must -reva lidate");

7 Ajax リクエストを送信する前に追加します xmlHttpRequest.setRequestHeader("If-Modified-Since","0");

8 ajax がリクエストを送信する前に追加します xmlHttpRequest.setRequestHeader("キャッシュ制御","キャッシュなし");

以上がjQuery.getJSON のキャッシュ問題を解決するためのいくつかの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート