2

我已经阅读了很多关于 IE 和 jquery 帖子的帖子(问题),但从没想过我会问如何让它在 Firefox 中运行,因为它在 IE9(没有缓存的标题)和 Chrome 中运行良好。

$(document).ready(function(){
    setInterval(function(){
        $.post("dashBoardsql.php", {track : 2}, function(pendingReq){
            $("#myTable").html(pendingReq);
            }),
            "html" });
}, 27000);

是我的 jquery 代码,就像我说的那样,它在 IE9 和 Chrome 中运行良好,但我必须在 FF12 中刷新页面才能看到pendingReq 传回的更新。我已经使用 Firebug 来观察带有 POST 数据的控制台,并且它会一直放置到 F5 页面。此外,没有报告错误,并且我的 no-cache 标头必须重新验证已到位:

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

有什么建议么?另外值得注意的是,正在我的本地机器上使用 WAMP 进行测试,因此没有跨域问题

解决了!问题“是”一个语法错误,但不是建议的方式,小提琴上的@KevinB 示例向我展示了,从上面的原始代码来看,它现在看起来像:

$(document).ready(function(){
    setInterval(function(){
        $.post("dashBoardsql.php?_=" + $.now(), {track : 2}, function(pendingReq){
            $("#myTable").html(pendingReq);
            }),
            "html"
}, 27000);
});

加上所有的标题信息,但我看到所有新的时间戳都出现了并且更新发生了。谢谢你们!

4

3 回答 3

1

尝试将反缓存字符串添加到 url。

$.post("dashBoardsql.php?_=" + $.now(), ...)
于 2012-05-07T17:34:03.893 回答
0
$(document).ready(function(){
    setInterval(function(){
        $.post("dashBoardsql.php?_=" + $.now(), {track : 2}, function(pendingReq){
            $("#myTable").html(pendingReq);
            }),
            "html"
}, 27000);
});
于 2012-05-08T07:29:03.973 回答
0

我不知道您的代码是否是您网站中的代码,但它包含语法错误。

但最有趣的是,在区间函数中,$ 不再被识别。而且我不明白为什么=/...

所以改用这个:

$(document).ready(function(){
    setInterval(function(){
        jQuery.post("dashBoardsql.php", {track : 2}, function(pendingReq){
            jQuery("#myTable").html(pendingReq);
        },"html");
    }, 27000);
});

此外,即使在正常情况下,也建议使用 jQuery 变量而不是 $(因为将来可能与其他框架发生冲突等)。

编辑:我不知道这是否能解决你的问题,虽然......

于 2012-05-07T17:35:51.820 回答