首頁  >  文章  >  web前端  >  解決jQuery.getJSON的快取問題的幾個方法

解決jQuery.getJSON的快取問題的幾個方法

巴扎黑
巴扎黑原創
2017-07-03 09:43:361271瀏覽

今天做測試工作,發現了一個令我費解的問題,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 將cache設為False
$.ajax不快取版:
##

$.ajax({
type:"GET"
url:'test.html' ,
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});


3. 在labels.html檔案的頂部加入以下聲明:

#e57b118234dbe923c36926980f7b4a4e

4ef21fe295e452c3aeb67780abbc5800
4.load函數不僅可以呼叫HTML,也可以呼叫script,例如labels.php,可以在php檔案裡使用header函數:

9b4ff8636ad11d974623d2e6c01d296e
#5 使用post代替get方法。
使用Post方式需注意:
設定header的Context-Type為application/x-www-form-urlencode確保伺服器知道實體中有參數變數. 通常使用XmlHttpRequest物件的SetRequestHeader("Context-Type","application/x-www- form-urlencoded;")。

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

參數是名/值一一對應的鍵值對,每對值用&號隔開.如var name=abc&sex=man&age=18,注意var name=update. php?abc&sex=man&age=18以及var name=?abc&sex=man&age=18的寫法都是錯誤的;

參數在Send(參數)方法中發送,例:xmlHttp.send(name); 如果是get方式,直接xmlHttp.send(null);伺服器端請求參數區分Get與Post。 $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("Cache-Control","no-cache");

 

 

#

以上是解決jQuery.getJSON的快取問題的幾個方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn