jQuery Ajax和setInterval Chrome问题

时间:2011-05-13 02:49:41

标签: javascript jquery ajax

我正在尝试使用jQuery和setInterval定期返回给定URL的值。我的代码如下:

    $("form").submit(function() {
        setInterval(function(){
            $('#upload_progress').load('/upload_progress');
        }, 5000);
    });

这在Firefox中完美运行,但在chrome中,load()函数永远不会运行。我也使用$ .ajax函数进行了同样的调整。

为什么这只会影响Chrome(v11.0)的任何想法?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

您的代码是否包含在文档准备检查中?

$(document).ready(function(){
    // your code
});

如果没有,那可能就是原因。

答案 1 :(得分:0)

首先,您实际上是在提交表单。我很确定这会让浏览器处于“嘿,我在等待从服务器重定向”的状态。如果您真的想要轮询和更新页面,则可能需要执行

$("form").submit(function(e) {
  e.preventDefault();
  // ...
}

就像一个开始。在这种情况下,它对我有用。在这里,我甚至让你成为一个很小的JSFiddle工作:http://jsfiddle.net/plukevdh/sRe4k/。如果完成后需要重定向,则可以向回调(json或其他)添加更多数据,以便检查{status: 0-100 [percent], completed: true|false}是否已完成或状态> = 100,只需更改window.location即可。