IE7似乎正在缓存来自ajax请求的响应。当缓存响应时,它的行为就好像请求是同步的,一旦传递给jQuery.get就调用我的回调,而不是等待当前的调用栈返回。
现在我要在我的回调中设置一个短暂的超时,这有望让我的代码至少工作。有没有更好的方法来防止这种情况发生?要强制IE7等到当前调用堆栈完成后再调用回调?
以下是我所看到的行为的简化示例:
myDebugger.log("setting up ajax request");
jQuery.get(myUrl, function(){
myDebugger.log("ajax request returned")
});
myDebugger.log("finished setting up ajax request");
第一次在重启浏览器后在IE7中运行它时,我得到:
setting up ajax request
finished setting up ajax request
ajax request returned
我第二次在IE7中运行它,我得到了这个:
setting up ajax request
ajax request returned
finished setting up ajax request