IE ajax緩存問題


在默認情況下,IE會緩存相同地址ajax請求的結果。IE的第一次ajax請求會發送到服務器端處理,如果后續的請求的參數與第一次的一樣,瀏覽器會直接返回緩存的結果而不是去服務器獲取。有時候我們希望獲取實時的數據,那么該如何解決這個問題呢?只要在ajax請求中加一個時間戳參數或隨機參數就可以了。jQuery ajax中提供了一個cache屬性來解決瀏覽器的緩存問題。

cache的默認值為true, 如果設為false, 它會強制請求的頁面不會被瀏覽緩存。設置cache為false時會在query string中追加一個"_=[時間戳]"的參數。

$.ajax({
    url: 'your url',
    type: 'GET',
    dataType: 'json',
    cache: false,  // 強制瀏覽器不緩存頁面
    data: { 'action': 'getinfo' },
    success: function(data) {
        // TODO code here.
    }
});

 

如果使用$.get或$.post方法,這兩個方法沒有cache這個參數,我們只要加一個隨機參數即可,如r=Math.random().

$.get(
    'your url',
    { 'action': getinfo, 'r': Math.random() },
    function(data) {
        // TODO code here.
    },
    'json'
)

 


免責聲明!

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



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