在使用jQuery ajax 無重新整理提交 判斷input框中的值時,發現因為緩衝問題,效果實現不對;
解決辦法:
瀏覽器解決(不建議):
* 在Internet選項中清除瀏覽器緩衝
*在F12開發人員工具中清除緩衝
php代碼解決方案:
ajax t提交時,不讓產生緩衝即可;
1、給請求連結加隨機數,如果用的是jQuery,直接設定: $.ajaxSetup({cache: false});
2、把type改成post,並隨便設定設定一個參數data: 'a=b'(一定要設定參數,否則仍然會被cache)
3、說說產生不一樣的數,就用隨機數 Math.random();或者或者時間戳記 + new Date();
例子
代碼如下 |
|
$.ajax({ type:"GET" url:'test.html', cache:false, dataType:"html", success:function(msg){ alert(msg); } }); 或者 $.ajax({ type:"GET" url:'test.html?'+Math.random(), cache:false, dataType:"html", success:function(msg){ alert(msg); } }); |
後來在網上找到了很多AJAX GET請求會被緩衝解決方案總結一下
1、在服務端加 header(“Cache-Control: no-cache, must-revalidate”);
2、在ajax發送請求前加上 anyAjaxObj.setRequestHeader(“If-Modified-Since”,”0″);
3、在ajax發送請求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,”no-cache”);
4、在 Ajax 的 URL 參數後加上 “?fresh=” + Math.random(); //當然這裡參數 fresh 可以任意取了
5、第四種方法和第三種類似,在 URL 參數後加上 “?timestamp=” + new Date().getTime();
6、用POST替代GET:不推薦