jQuery.getJSON的快取問題的解決辦法
今天做測試工作,發現了一個令我費解的問題,jquery的getJson方法在firefox上執行可以得到返回的結果,但是在ie8上測試,竟發現沒有傳送請求,故不能取到任何返回的結果,經歷了一翻周折,找到了百度空間http://hi.baidu.com/fengluolyn/blog/item/0ac6b7130d8985ddf7039e83.html上的解決辦法,便摘抄了下來……
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檔案的頂部加入以下宣告:
<META HTTP-EQUIV=”Pragma” CONTENT=”no-cache”>
<META HTTP-EQUIV=”Expires” CONTENT=”-1″>
4.load函式不僅可以呼叫HTML,也可以呼叫script,比如labels.php,可以在php檔案裡使用header函式:
<?php
header(“Cache-Control: no-cache, must-revalidate”);
?>
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。如果是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(“Cache-Control”,”no-cache”);
相關文章
- 解決:在阻止快取的inspect模式下無法drawImage()的問題快取模式
- HTC Vive遇到的問題解決辦法
- veritas netbackup的問題解決辦法
- 快取問題(四) 快取穿透、快取雪崩、快取併發 解決案例快取穿透
- 程式碼解決快取穿透和快取雪崩問題快取穿透
- oracle rac asm 問題的官方解決辦法OracleASM
- jquery的get()函式快取問題解決方案jQuery函式快取
- 跨域問題解決辦法跨域
- 快取穿透問題與解決方法快取穿透
- Vue動態路由快取不相互影響的解決辦法Vue路由快取
- JQuery中ajax的使用與快取問題的解決方法jQuery快取
- 快取世界中的三大問題及解決方案快取
- svn相關問題解決辦法
- 快取常見問題及解決方案快取
- 快取三大問題及解決方案快取
- 快取的問題快取
- 最近遇到的問題和解決辦法
- 使用雙快取解決 Canvas clearRect 引起的閃屏問題快取Canvas
- 快取過程存在的三大問題及解決方案快取
- Thinkphp5-Cache::clear()清空快取在的問題解決PHP快取
- 【Ubuntu】unknown host問題解決辦法Ubuntu
- 虛擬化問題及解決辦法
- oracle壞塊問題及解決辦法Oracle
- 手摸手教你解決重定向快取問題快取
- redis快取相關問題及解決方案Redis快取
- 無法訪問google picasa的解決辦法Go
- 資料併發操作帶的的問題及解決辦法
- 快取同步的問題快取
- css的position-relative相容問題與解決辦法CSS
- 你遇到過的相容性問題以及解決辦法
- IOS下圖片不能顯示問題的解決辦法iOS
- 幾種解決“藍芽不可用”問題的辦法藍芽
- 【DataBase】:使用Oracle遇到的幾個問題及解決辦法DatabaseOracle
- 安裝DBD:MySql模組遇到的問題及解決辦法MySql
- Jenkins解決無法獲取外掛的辦法Jenkins
- 【Salesforce問題解決】Dataloader匯出的檔案亂碼或者問號的解決辦法Salesforce
- gulp外掛解決瀏覽器快取問題瀏覽器快取
- 前端使用 gulp 解決多專案快取問題前端快取