Internet Explorer 10 зависает при закрытии веб-страницы во время запроса XHR

Примечание: Поддержка классических приложений Internet Explorer 11 будет отменена 15 июня 2022 г. (список области действия см. в вопросе и о том, как это сделать). Те же приложения и сайты IE11, которые вы используете сегодня, могут открываться Microsoft Edge режиме Internet Explorer. Подробнее об этом...

Проблемы

Рассмотрим следующий сценарий.

  • Перейдите на определенную веб-страницу с помощью Internet Explorer 10.

  • Веб-страницу содержит сценарий, который создает асинхронный XML-запросhttpRequest (XHR) при ее открытие.

  • Веб-страницу необходимо закрыть во время запроса XHR.

  • Размер ответа на XHR-запрос превышает 2 КБ (включая данные о заглавных руководителях).

В этом случае вы можете потерять http-подключение к данному хосту. После этого при попытке перейдите на другую веб-страницу на хосте, возможно, сеть зависла. Эта проблема возникает, когда теряется максимальное количество одновременно подключений к хосту.

Примечание. Эта проблема возникает в режимах документов Internet Explorer 7, Internet Explorer 8 и Internet Explorer 9 в Internet Explorer 10.

Решение

Сведения об обновлении системы безопасности

Чтобы устранить эту проблему в Internet Explorer 9 или Internet Explorer 10, установите последнее накопительное обновление системы безопасности для Internet Explorer. Для этого перейдите на следующий веб-сайт Майкрософт:

http://update.microsoft.com
Заметки

  • Это обновление для Internet Explorer 10 было сначала включено в следующее обновление для системы безопасности:

    2838727 MS13-047: накопительное обновление системы безопасности для Internet Explorer: 11 июня 2013 г.

  • Чтобы установить это обновление для Internet Explorer 9, щелкните номер следующей статьи, чтобы просмотреть статью в базе знаний Майкрософт: Internet Explorer

    2905733 теряет HTTP-подключения при закрытии веб-страницы перед получением ответа XHR.

  • Дополнительные технические сведения о последних накопительных обновлениях системы безопасности для Internet Explorer можно найти на следующих веб-сайтах Майкрософт:

    http://www.microsoft.com/technet/security/current.aspx

Обходное решение

Для решения этой проблемы можно использовать один из следующих способов:

  1. Измените XHR-запрос на синхронный запрос.

    Примечание. Это обходное решение не является лучшими методиками программирования и может привести к зависанию веб-браузера, если ответа нет. Дополнительные сведения см. в статью Почему следует использовать XMLhttpRequest Асинхронно.

    Чтобы избежать утечки Windows Подключения к Интернету (WinINet) вместе с AJAX, вы можете закрыть существующее подключение до закрытия окна.

    Примечание. Чтобы узнать больше о том, как обойти утечку подключения, щелкните номер следующей статьи, чтобы просмотреть статью в базе знаний Майкрософт:

    886710 Internet Explorer перестает отвечать, и вы также можете заметить утечку памяти на компьютере.

  2. Замените метод window.open методом window.showModalDialog.

    Обратите внимание, что это решение предотвращает взаимодействие пользователей с родительским окном до закрытия окна ребенка.

  3. Отостановка существующих асинхронных XHR-запросов из события OnUnLoad. Пример:

    function unloadEventHandler() 
    {
    if (g_xmlHttpRequest != null && g_xmlHttpRequest.readyState != 4)
    {
    g_xmlHttpRequest.abort();
    }
    }
  4. Не вы можете делать асинхронные вызовы XHR из события OnUnLoad.

    Примечание. Эта проблема может возникнуть даже при звонках из события OnLoad.

  5. Обновив Internet Explorer 10, убедитесь, что вы используете реализацию XHR.

  6. Увеличение максимального количества подключений.

Дополнительная информация

Дополнительные сведения о терминах, используемых при описании обновлений программного обеспечения, см. в указанной ниже статье базы знаний Майкрософт.

824684 Стандартная терминология, используемая при описании обновлений программных продуктов Майкрософт

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

×