在 IE10 上设置间隔

setInterval on IE10

setInterval 函数不适用于 I.E. 10. 我有一个网页,当提交表单时,它会在服务器上触发一个很长的文件下载过程。我使用 setInterval 重复轮询服务器以获取进度,以便用户获得某种进度更新。

ProgressServlet 只会被调用一次。我没有在另一个网络浏览器上测试这个,因为在我公司使用另一个浏览器是"illegal"。

<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>
<form method="post" action="CreateServlet" name = "create">

Change Number(s):<br>
<input type="text" name="change" id="change">
<p></p>
<input type="submit" value="Download" onClick="return validateForm()">

</form>
<p></p>
<button  id="send" name="send">Display</button>

改变

myVar = setInterval(getProgress(), 1000);

myVar = setInterval(getProgress, 1000);

也就是:传递函数,而不是什么returns.