Ajax刷新div在刷新后显示旧数据

时间:2016-03-10 12:59:01

标签: javascript php jquery ajax

您好我在寻找一些提示来解决我在ajax刷新时遇到的问题,问题是div显示加载的最新信息,但是当它刷新时显示较旧的数据。 div显示播放的最新曲目,就像我说的那样,当页面加载时显示正确的曲目,但是10秒后重新加载它显示的是较旧的曲目。

这是我的代码......

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

任何帮助解决这个问题的人都会非常感激

2 个答案:

答案 0 :(得分:3)

我发现禁用ajax缓存在所有浏览器中都无法可靠地运行。为了确保获得新鲜内容,您可以向查询字符串添加一些唯一数据,例如:

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

...

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

答案 1 :(得分:3)

这可能是由浏览器的缓存引起的。 您应该明确关闭缓存以避免这种情况。

在ASP中你可以/应该设置:

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

有关此问题的详细讨论,请参阅this topic