setInterval函数不适用于I.E. 10.我有一个网页,当提交表单时,它将在服务器上触发一个用于下载文件的漫长过程。我使用setInterval重复轮询服务器以获取进度,以便用户获得有关进度的某种更新。
ProgressServlet只会被调用一次。我没有在另一个网络浏览器上测试这个,因为它是非法的#34;在我公司使用其他浏览器。
id

<script>
var myVar;
function validateForm()
{
//validation logic omitted
myVar = setInterval(getProgress(), 1000);
return true;
}
function getProgress() {
//ProgressServelt will return progress of the long process on the server
$.get("ProgressServlet", $.now(), function(res) {
if (res != "9999" || res == "No value avaliable") {
$("#progress").html(res);
} else {
$("#progress").html("Stopped: " + res);
clearInterval(myVar);
}
});
}
</script>
&#13;
答案 0 :(得分:3)
更改
myVar = setInterval(getProgress(), 1000);
到
myVar = setInterval(getProgress, 1000);
那就是:传递函数,而不是它返回的函数。