警告: 在某些版本的 Windows 10 上,通过 Microsoft Edge 更新永久禁用已停用的不支持的 Internet Explorer 11 桌面应用程序。 有关详细信息,请参阅 Internet Explorer 11 桌面应用停用常见问题解答。
症状
请考虑以下情况:
-
使用 Internet Explorer 10 浏览到某个网页。
-
网页包含一个脚本,该脚本在打开网页时发出异步 XMLHttpRequest (XHR) 请求。
-
在 XHR 请求期间关闭网页。
-
XHR 请求的响应大于 2 KB (包括标头数据) 。
在这种情况下,可能会丢失与给定主机的 HTTP 连接。 然后,当你尝试浏览到主机上的另一个网页时,可能会遇到网络冻结。 当失去与主机的最大并发连接数时,会出现此问题。
注意 Internet Explorer 10 中的 Internet Explorer 7、Internet Explorer 8 和 Internet Explorer 9 文档模式中会出现此问题。解决方案
安全更新信息
若要在 Internet Explorer 9 或 Internet Explorer 10 中解决此问题,请安装 Internet Explorer 的最新累积安全更新。 为此,请访问下面 Microsoft 网站:
解决方法
要解决此问题,请使用下面的方法之一:
-
将 XHR 请求更改为同步请求。为何应异步使用 XMLHttpRequest。 若要避免 Windows Internet (WinINet) 连接泄漏以及 AJAX,可以在窗口关闭前结束现有连接。 注意 有关如何解决连接泄漏问题的详细信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:
注意 此解决方法反对最佳编程做法,如果没有响应,可能会导致 Web 浏览器冻结。 有关详细信息,请参阅886710 Internet Explorer 似乎停止响应,你可能还注意到计算机上的内存泄漏
-
将 window.open 方法替换为 window.showModalDialog 方法。
请注意,此解决方法可防止用户与父窗口交互,直到子窗口关闭。 -
结束来自 OnUnLoad 事件的现有异步 XHR 请求。 例如:
function unloadEventHandler() { if (g_xmlHttpRequest != null && g_xmlHttpRequest.readyState != 4) { g_xmlHttpRequest.abort(); } }
-
不要从 OnUnLoad 事件进行异步 XHR 调用。
注意 即使从 OnLoad 事件进行调用,此问题仍可能发生。 -
升级到 Internet Explorer 10 并确保使用本机 XHR 实现。
-
增加最大连接数。
详细信息
有关软件更新术语的更多信息,请单击下面的文章编号以查看 Microsoft 知识库中的相应文章:
824684 用于描述 Microsoft 软件更新标准术语的说明
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。