方法一,
參數type由get改成post
添加參數cache並設定成false
新增時間戳記
代碼如下 |
複製代碼 |
$.ajax({ url: 'ios/index', cache: false, type: 'post', data: { timestamp: new Date().getTime() //params here }, dataType: 'json' }).done(function (data) { //codes here }); |
方法二,
jQuery Load樣本代碼:
代碼如下 |
複製代碼 |
$(document).ready(function(){ $("#labels").load("/blog/categories/labels.html"); //在頁面裝載時,在ID為#labels的DOM元素裡插入labels.html的內容。 }); |
當我更新了labels.html以後,在IE7裡load方法仍舊在使用舊的labels.html,就算我按重新整理鍵也不管用。好在jQuery提供一個防止ajax使用緩衝的方法,把下面的語句加在head的javascript檔案裡,就可以解決問題。
代碼如下 |
複製代碼 |
$.ajaxSetup ({ cache: false //關閉AJAX相應的緩衝 }); |
此外我再介紹幾種方法解決緩衝的方法。注意:我沒有在jQuery load的問題上測試過,這些方法僅供參考
總之,GET方式傳送資料量小,處理效率高,安全性低,會被緩衝,而POST反之。
使用get方式需要注意:
1 對於get請求(或凡涉及到url傳遞參數的),被傳遞的參數都要先經encodeURIComponent方法處理.例:var url = "update.php?username=" +encodeURIComponent(username) + "&content=" +encodeURIComponent
(content)+"&id=1" ;
使用Post方式需注意:
1.設定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");
2.參數是名/值一一對應的索引值對,每對值用&號隔開.如 var name=abc&sex=man&age=18,注意var name=update.php?
abc&sex=man&age=18以及var name=?abc&sex=man&age=18的寫法都是錯誤的;
3.參數在Send(參數)方法中發送,例: xmlHttp.send(name); 如果是get方式,直接 xmlHttp.send(null);
4.伺服器端請求參數區分Get與Post。如果是get方式則$username = $_GET["username"]; 如果是post方式,則$username = $_POST["username"];