jquery ajax緩存問題解決方法小結


今天在做一個ajax數據提交功能開始利用get方式一直發現提交的數據都是一樣,返回的數據也很久不刷新了,這個我知道是ajax緩存問題,后來在網上整理了一些ajax緩存問題解決方法,下面給大家分享一下。 解決方法: 1

 
今天在做一個ajax數據提交功能開始利用get方式一直發現提交的數據都是一樣,返回的數據也很久不刷新了,這個我知道是ajax緩存問題,后來在網上整理了一些ajax緩存問題解決方法,下面給大家分享一下。
 

解決方法:

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:不推薦

一聚小編提示您:關於ajax緩存問題我們上面的方法都有簡單測試都是有效的大家根據自己喜歡選擇吧,當然有時我們是需要緩存功能有時不需要大家可以根據實際情況來設置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM