Технология AJAX — усовершенствования подключения в Internet Explorer 8
В Internet Explorer 8 имеется несколько важных усовершенствований подключения, которые могут улучшить как производительность, так и функциональность асинхронных сценариев JavaScript и XML (AJAX) и других веб-приложений. Эти усовершенствования включают увеличение максимального количества одновременных подключений с одного узла и дополнительные события подключения.
В этом разделе представлены следующие подразделы:
- Одновременные подключения
- Некоторые предпосылки
- Новое сценарное свойство подключения
- Изменение максимального числа одновременных подключений
- Улучшения состояния подключения
- Новая функциональность свойства onLine
- Новые простые события
- Новые обработчики обратных вызовов
- См. также
Одновременные подключения
В Internet Explorer 8 максимальное число одновременных подключений из одного хост-процесса, подключаемого через широкополосное подключение к одному серверу, увеличено до 6. В Internet Explorer 7 и более ранних версиях максимальное число одновременных подключений на один хост-процесс, подключаемый через широкополосное подключение к одному серверу через HTTP 1.1, равнялось 2. Для протокола HTTP 1.0 соответствующий предел равнялся 4, хотя подключения по HTTP 1.1 в настоящее время являются более распространенными. Обратите внимание, что максимальное число одновременных подключений из одного хост-процесса, подключаемого через коммутируемое подключение к одному серверу (например, с помощью модема или по телефонной линии), остается тем же, что и для Internet Explorer 7 и более ранних версий.
В следующей таблице приводятся сводные данные по максимальному числу одновременных подключений на основе версии Internet Explorer, выполняющейся на хосте, скорости подключения хоста и версии протокола, которая поддерживается сервером.
Версия | Сервер HTTP 1.0 (широкополосное подключение) | Сервер HTTP 1.1 (широкополосное подключение) | Сервер HTTP 1.0 (коммутируемое подключение) | Сервер HTTP 1.1 (коммутируемое подключение) |
---|---|---|---|---|
Internet Explorer 7 и более ранние версии | 4 | 2 | 4 | 2 |
Internet Explorer 8 | 6 | 6 | 4 | 2 |
Некоторые предпосылки
Если предельное число в 4 подключения для протокола HTTP 1.0 был установлено с учетом поведения большинства браузеров в то время, предельное число в 2 подключения для протокола HTTP 1.1 было обусловлено требованием, установленным в спецификации HTTP 1.1 (см. меморандум Request for Comment 2616). В момент подготовки первого проекта данного стандарта (январь 1997 г.) предельное число в 2 подключения соответствовало имеющимся на тол время условиям, когда основным способом подключения к Интернету являлось коммутируемое подключение, а широкополосные подключения являлись редким исключением.
Однако с тех пор, как был подготовлен стандарт HTTP 1.1, широкополосные подключения получили более широкое распространение, тем самым исключив пропускную способность на стороне клиента из числа факторов, ограничивающих скорость подключения. Обычно время, необходимое для установления подключения и отправки запроса, составляет значительную часть времени, затраченного на загрузку индивидуальных объектов. Кроме того, улучшенные возможности современных веб-серверов и прокси-серверов снижают риск перегрузки инфраструктуры сети при увеличении числа подключений на хост. Потребность в большем числе подключений на хост становится особенно острой, если учесть увеличение распространения приложений и страниц, основанных на технологии AJAX, многие из которых асинхронно отправляют большие объемы данных.
Новое сценарное свойство подключения
У вас могут возникнуть некоторые проблемы совместимости в связи с этим новым типом поведения, если вами были реализованы некоторые способы обхода ограничений, имевшихся ранее. В этом случае, чтобы избежать перегрузки веб-сервера, вы можете организовать доставку содержимого на основе числа подключений, которое каждый клиентский компьютер способен одновременно открывать. С этой целью в Internet Explorer 8 включен объект window. maxConnectionsPerServer, позволяющий серверу определять число подключений, доступных клиентском компьютере.
В Internet Explorer 8 объект maxConnectionsPerServer будет возвращать 6
при широкополосном подключении, если только пользователь или администратор не изменят настройки по умолчанию. Если клиентский компьютер подключен через коммутируемое подключение, объект maxConnectionsPerServer будет возвращать 2
при подключении к серверу HTTP 1.1 или 4
при подключении к серверу HTTP 1.0.
Изменение максимального числа одновременных подключений
Пользователи или администраторы, сталкивающиеся с проблемами, касающимися времени загрузки страницы, могут изменить максимальное число одновременных подключений к одному серверу. При этом использование одного из методов позволяет самостоятельно изменить предельное значение. При втором методе изменение предельного значения выполняется с помощью групповой политики.
Важно! Этот раздел содержит информацию о том, как вносить изменения в реестр. Прежде чем вносить изменения в реестр, обязательно сделайте его резервную копию. Убедитесь, что знаете, как восстанавливать реестр в случае возникновения проблемы. Дополнительные сведения о том, как можно создать резервную копию реестра, восстановить или изменить его, см. в статье базы знаний Майкрософт, посвященной созданию резервной копии и восстановлению реестра в Windows (возможно, на английском языке).
Метод 1. Изменение значений посредством использования раздела реестра
Запустите приложение Regedit.
Для подключений HTTP 1.1 перейдите к следующему разделу реестра. Если он не существует, создайте его.
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_MAXCONNECTIONSPERSERVERПримечание. Раздел FEATURE_MAXCONNECTIONSPERSERVER можно изменить или добавить в то же самое местоположение внутри раздела HKEY_LOCAL_MACHINE либо раздела HKEY_CURRENT_USER. Результат будет одинаковым.
Создайте новую директиву DWORD с названием
iexplore.exe
и задайте для нее значение, соответствующее желаемому предельному числу подключений для HTTP 1.1. Например, задание значения0000002
будет соответствовать предельному числу подключений для Internet Explorer 7 и более ранних версий.Для подключений HTTP 1.0 перейдите к следующему разделу реестра. Если он не существует, создайте его.
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_MAXCONNECTIONSPER1_0SERVERПримечание. Раздел FEATURE_MAXCONNECTIONSPER1_0SERVER можно изменить или добавить в то же самое местоположение внутри раздела HKEY_LOCAL_MACHINE либо раздела HKEY_CURRENT_USER. Результат будет одинаковым.
Создайте новую директиву DWORD с названием
iexplore.exe
и задайте для нее значение, соответствующее желаемому предельному числу подключений для HTTP 1.0. Например, задание значения0000004
будет соответствовать предельному числу подключений для Internet Explorer 7 и более ранних версий.
Метод 2. Изменение значений с помощью групповой политики
Максимальное число одновременных подключений к одному серверу можно изменить с помощью групповой политики, как уже описывалось в данном разделе. Простейший способ состоит в использовании редактора групповой политики (указан в списке первым). Можно также внести изменения в раздел реестр (второй метод, указанный в списке).
Метод с использованием редактора групповой политики
- Запустите gpedit.msc.
- Разверните элемент "Конфигурация пользователя" (или "Конфигурация компьютера"), а затем последовательно разверните элементы "Административные шаблоны", "Компоненты Windows", "Internet Explorer", "Средства безопасности" и AJAX.
- Задайте желаемое максимальное количество подключений на сервер (HTTP 1.0) и максимальное количество подключений на сервер (HTTP 1.1). Затем нужно будет обновить политики или перезапустить компьютер, чтобы внесенные изменения вступили в силу.
Метод с использованием раздела реестра
Запустите приложение Regedit.
Для подключений HTTP 1.1 перейдите к следующему разделу реестра. Если он не существует, создайте его.
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Policies
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_MAXCONNECTIONSPERSERVERПримечание. Раздел FEATURE_MAXCONNECTIONSPERSERVER можно изменить или добавить в то же самое местоположение внутри раздела HKEY_LOCAL_MACHINE либо раздела HKEY_CURRENT_USER. Результат будет одинаковым.
Создайте новую директиву DWORD с названием
iexplore.exe
и задайте для нее значение, соответствующее желаемому предельному числу подключений для HTTP 1.1. Например, задание значения0000002
будет соответствовать предельному числу подключений для Internet Explorer 7 и более ранних версий.Для подключений HTTP 1.0 перейдите к следующему разделу реестра. Если он не существует, создайте его.
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Policies
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_MAXCONNECTIONSPER1_0SERVERПримечание. Раздел FEATURE_MAXCONNECTIONSPER1_0SERVER можно изменить или добавить в то же самое местоположение внутри раздела HKEY_LOCAL_MACHINE либо раздела HKEY_CURRENT_USER. Результат будет одинаковым.
Создайте новую директиву DWORD с названием
iexplore.exe
и задайте для нее значение, соответствующее желаемому предельному числу подключений для HTTP 1.0. Например, задание значения0000004
будет соответствовать предельному числу подключений для Internet Explorer 7 и более ранних версий.
Улучшения состояния подключения
Internet Explorer 8 позволяет странице или приложению делать запрос о том, имеется ли у браузера сетевое подключение. В Internet Explorer 7 и более ранних версиях, эта функциональность отсутствует. Поэтому их использование может привести к затруднением в работе пользователя, если у его компьютера будет потеряно подключение.
Новая функциональность свойства onLine
Свойство onLine (обоих объектов — window.navigator и window.clientInformation) является доступным, начиная с версии Microsoft Internet Explorer 4.0. Однако в версиях, начиная с Internet Explorer 4.0 по Internet Explorer 7, свойство onLine просто указывало, находится ли система в "глобальном автономном режиме"," который инициируется пользователями посредством выбора команды "Работать автономно" в меню "Файл". В этих версиях свойство onLine не указывало, подключена ли система к сети. В Internet Explorer 8 и более поздних версиях свойство onLine указывает, действительно ли система подключена к сети.
Чтобы запросить состояние подключения, вызовите свойство window.navigator.onLine. Это свойство возвратит значение true, если система подключена к сети, и значение false, если не подключена.
Новые простые события
Когда свойство window.navigator.onLine изменяется после загрузки страницы, создается простое событие на элементе страницы body. Это происходит следующим образом.
- Если свойство изменяется с true на false, создается простое событие offline на элементе body.
- Если свойство изменяется с false на true, создается простое событие online на элементе body.
Дополнительные сведения о событий на HTML-элементах см. в документе HTML 5 (рабочий проект) на веб-сайте консорциума W3C. События online и offline соответствуют стандарту W3C HTML 5 Working Draft по состоянию на ноябрь 2008 г.
События подключения можно отключить с помощью раздела реестра. Для этого выполните следующие действия:
Запустите приложение Regedit.
Перейдите к следующему разделу реестра. Если он не существует, создайте его.
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_AJAX_CONNECTIONEVENTSПримечание. Раздел FEATURE_AJAX_CONNECTIONEVENTS можно изменить или добавить в то же самое местоположение внутри раздела HKEY_LOCAL_MACHINE либо раздела HKEY_CURRENT_USER. Результат будет одинаковым.
Создайте новую директиву DWORD с названием
iexplore.exe
и задайте для нее значение0000000
.
Если после создания раздела реестра потребуется снова включить события подключения, можно для iexplore.exe
задать значение 0000001
.
Новые обработчики обратных вызовов
Чтобы указать изменение в состоянии подключения, в Internet Explorer 8 введены следующие обработчики обратных вызовов:
- Обработчик onoffline вызывается, когда компьютер пользователя теряет подключение к сети, например при отсоединении сетевого кабеля или отключении сетевого адаптера. Это также происходит, когда пользователь задает для параметра "Работать автономно" значение on.
- Обработчик ononline вызывается при восстановлении сетевого подключения компьютера. Это также происходит, когда пользователь задает для параметра "Работать автономно" значение off.
См. также
- Усовершенствования XMLHttpRequest в Internet Explorer 8 (возможно, на английском языке)
- Элементы навигации AJAX (возможно, на английском языке)