我已经在 Firefox、Opera 和 Seamonkey 上对此进行了测试。效果很好。当谈到 Internet Explorer 7 时,它可以工作,但只能达到一定程度。我每隔几秒就会对 PHP 脚本进行一次 AJAX 调用。在 IE7 中,它进行第一个 AJAX 调用并检索数据,但它不会再这样做。即使我在 else block 中有一个 setTimeout 函数。 为什么? :(
startTime = setTimeout('getStatus()', 5000);
}//function convertNow
函数 getStatus() {
$.ajax({
type: "GET",
url: "fileReader.php",
data: 'textFile=' + fileNameTxt,
success: function(respomse){
textFileResponse = respomse.split(" ");
$("#done").html("Downloading & Converting Video...<b style='font-size:17px;color:green;'>" + textFileResponse[0] + "</b><br /><b>" + properFileName + '</b>');
}
});//ajax
if(textFileResponse[0]=='100.0%'){
}
else{
continueTime = setTimeout('getStatus();', 3000);
alert('call end');
}
}
如果这个问题让您感到沮丧,我们深表歉意。在过去的三个小时里我一直像 headless 苍蝇一样到处乱跑。
感谢您的帮助。
编辑2
我已经添加了完整的功能。 setTimeout 似乎工作正常。它一定是 AJAX 调用,我只是检查返回的内容。更陌生了!它不断从 AJAX 请求返回相同的值,并且没有获得任何更新的值!我认为答案 2 可能有问题。这可能是由于缓存所致,但您如何解决这个问题?
最佳答案
您是否通过 HTTP GET 请求 ajax 调用,而不是 HTTP POST? IE 倾向于使用 ajax 调用的缓存结果,除非您使用 POST 而不是 GET。
编辑:既然您更新了您的问题,我可以看到您确实在使用 GET 动词。将其更改为 POST,我打赌您的问题将会得到解决。
关于javascript - Wtf IE7 - 使用 setTimeout 的 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/592830/