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

问题描述 投票:1回答:2

嗨,我正在寻找一些提示来解决我在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 });
});

任何帮助解决这个问题将不胜感激

javascript php jquery ajax
2个回答
3
投票

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

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

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

请参阅this topic以获得关于此的精彩讨论。


3
投票

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

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

...

$("#tracks").load("json.php?defeatCache="+rand());
© www.soinside.com 2019 - 2024. All rights reserved.