【发布时间】:2010-10-26 02:50:54
【问题描述】:
for (var i = 0; i < 5; ++i) {
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
xhr.open('GET', '/Test/LongOperation?p=' + new Date());
xhr.send('');
}
这只是一个演示(不是实时代码),但它说明了核心问题。
LongOperation是10秒后返回结果的方法。
问题:
为什么当用户在上面的代码 sn-p 执行后试图离开页面时,IE8(可能还有其他 IE)会挂起? FireFox/Safari 取消这些请求并允许导航到另一个页面。如果将
'i < 5'替换为'i < 4',则IE 不会挂起。如何解决这种丑陋的 IE 行为?当他们的浏览器突然挂起时,用户非常沮丧。
【问题讨论】:
标签: ajax internet-explorer internet-explorer-8 xmlhttprequest