2016-03-10 169 views
1

嗨那裏我正在尋找一些提示來解決我用ajax刷新的問題,問題是div顯示負載的最新信息,但是當它刷新時顯示的是舊數據。該div顯示最新的曲目播放在空氣中,就像我說的當頁面加載時顯示正確的曲目,但10秒後它重新加載它顯示更老的曲目。Ajax刷新div顯示刷新後的舊數據

這裏是我的代碼...

$(document).ready(function() { 
    $("#tracks").load("json.php"); 
    var refreshId = setInterval(function() { 
     $("#tracks").fadeOut('slow').load("json.php").fadeIn('slow'); 
    }, 10000); 
    $.ajaxSetup({ cache: false }); 
}); 

任何搞清楚這個問題了。將大大幫助表示讚賞

+0

您確定從'json.php'返回的數據每10秒有所不同嗎? – Arkantos

+0

它每10秒可能不會有所不同,但是當它加載時顯示最近的數據,並且在10秒之後顯示較舊的數據並繼續顯示較舊的數據 – TheWebMann

回答

3

這可能是由緩存瀏覽器引起的。 您應該明確地關閉緩存以避免這種情況。

在ASP中,你可以/應該設置:

Response.CacheControl = "no-cache, no-store, must-revalidate" 
Response.Expires = -1 

有關此的精彩討論,請參見this topic

2

我發現禁用AJAX緩存並不適用於所有的瀏覽器可靠地工作。爲確保獲得新鮮內容,您可以在查詢字符串中添加一些唯一的數據,例如:

function rand() { 
    return Math.floor((Math.random()*99999)+10000);  
} 

... 

$("#tracks").load("json.php?defeatCache="+rand());