Internet Explorer 8 中的连接增强功能
Internet Explorer 8 包含几项重要的连接增强功能,这些增强功能可以改进异步 JavaScript 和 XML (AJAX) 与其他 Web 应用程序的性能和功能。 这些增强功能包括增大了来自单个主机的最大并发连接数以及添加了连接事件。
本主题包含以下各节。
- 并发连接数
- 一些背景知识
- 新的可脚本化的连接属性
- 更改最大并发连接数
- 连接状态改进
- 新的 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 |
一些背景知识
尽管当初将 HTTP 1.0 的最大连接数设置为 4 以匹配当时的大多数其他浏览器的行为,但后来为了满足 HTTP 1.1 规范(征求意见文档 2616)中规定的强制性要求,将 HTTP 1.1 的最大连接数目设置为 2。 在首次草拟这一标准时(1997 年 1 月),考虑到当时基于拨号 Internet 连接占据统治地位而宽带连接还很稀少的情况,将最大连接数设为 2 还是恰当的。
然而,自从草拟 HTTP 1.1 标准之后,高带宽连接已变得越来越普遍,从而使客户端带宽不再是影响连接速度的瓶颈因素。 通常,建立连接并发送请求所需的时间中的大部分都用在检索各个对象了。 此外,目前的 Web 和代理服务器的功能都得到了增强,降低了网络基础结构因每主机连接数的增加而无法承受的风险。 考虑到 AJAX 应用程序和页面越来越普及,并且其中的许多 AJAX 应用程序和页面会异步发送大量数据,因此,对增加每个主机的连接数的需求特别强烈。
新的可脚本化的连接属性
如果您已实施相应解决方法来避开前面所述的限制,则您可能要关注与此新行为的兼容性。 在此情况下,为了避免您的 Web 服务器不堪重负,您可能需要基于每个客户端计算机能够同时打开的连接数来适当地传送内容。 为此,Internet Explorer 8 提供了一个 window. maxConnectionsPerServer 对象,服务器可以利用此对象来确定客户端计算机上的可用连接数。
在 Internet Explorer 8 中,maxConnectionsPerServer 对于宽带连接将返回 6
,除非用户或管理员已重写此默认值。 在客户端计算机通过拨号连接时,如果连接到 HTTP 1.1 服务器,则 maxConnectionsPerServer 将返回 2
;如果连接到 HTTP 1.0 服务器,则 maxConnectionsPerServer 将返回 4
。
更改最大并发连接数
用户或管理员在遇到与页面加载时间相关的问题时,可以更改与单个服务器的并发连接的最大数目。 利用第一种方法,您可以对选定的值更改限制。 第二种方法是使用组策略来更改限制。
重要提示 本节包含有关如何修改注册表的信息。 修改注册表之前,一定要先进行备份, 并且一定要知道在发生问题时如何还原注册表。 有关如何备份、还原和修改注册表的详细信息,请参见 Microsoft 知识库中的如何在 Windows 中备份和还原注册表(可能为英文网页)。
方法 1: 使用功能控制项更改值
启动 Regedit。
对于 HTTP 1.1 连接,请导航到以下功能控制项。 如果此功能控制项不存在,请创建它。
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_MAXCONNECTIONSPERSERVER注意 您可以在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 中的同一位置更改或添加 FEATURE_MAXCONNECTIONSPERSERVER。 这将获得相同的效果。
创建一个名为
iexplore.exe
的新 DWORD,并将其值数据设置为针对 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注意 您可以在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 中的同一位置更改或添加 FEATURE_MAXCONNECTIONSPER1_0SERVER。 这将获得相同的效果。
创建一个名为
iexplore.exe
的新 DWORD,并将其值数据设置为针对 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注意 您可以在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 中的同一位置更改或添加 FEATURE_MAXCONNECTIONSPERSERVER。 这将获得相同的效果。
创建一个名为
iexplore.exe
的新 DWORD,并将其值数据设置为针对 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注意 您可以在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 中的同一位置更改或添加 FEATURE_MAXCONNECTIONSPER1_0SERVER。 这将获得相同的效果。
创建一个名为
iexplore.exe
的新 DWORD,并将其值数据设置为针对 HTTP 1.0 连接的所需连接限制。 例如,若将此值设置为0000004
,则将与 Internet Explorer 7 和早期版本中的限制匹配。
连接状态改进
Internet Explorer 8 可让您的页面或应用程序查询浏览器是否具有网络连接。 由于 Internet Explorer 7 和早期版本不包含此功能,因此会导致出现用户计算机丢失连接这样的意外用户体验。
新的 onLine 属性功能
从 Microsoft Internet Explorer 4.0 开始,提供了 onLine 属性(针对 window. navigator 对象和 window. clientInformation 对象)。 但从 Internet Explorer 4.0 到 Internet Explorer 7 的版本中,onLine 属性仅指示系统是否处于“全局脱机模式”,用户可通过从“文件”菜单中选择“脱机工作”来启动此模式。 在这些版本中,onLine 属性并不指示系统是否连接到网络。 然而,在 Internet Explorer 8 和更高版本中,onLine 属性将指示系统是否已实际连接到网络。
若要查询网络连接状态,可调用 window.navigator.onLine。 如果系统已连接到网络,则此属性返回 true;否则返回 false。
新的简单事件
在加载某个页面之后,如果 window.navigator.onLine 属性发生更改,则会对该页面的 body 元素引发一个简单事件,如下所示。
- 如果 onLine 从 true 变为 false,则对 body 元素引发脱机简单事件。
- 如果 onLine 从 false 变为 true,则对 body 元素引发联机简单事件。
有关对 HTML 元素引发的事件的详细信息,请参见万维网联合会 (W3C) 网站上的 HTML 5(工作草案)(可能为英文网页)。 从 2008 年 11 月起,联机事件和脱机事件都要遵循 W3C HTML 5 工作草案。
可以使用一个功能控制项来禁用连接事件。 为此,请按以下步骤操作:
启动 Regedit。
导航到以下功能控制项。 如果此功能控制项不存在,请创建它。
HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
MAIN
FeatureControl
FEATURE_AJAX_CONNECTIONEVENTS注意 您可以在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 中的同一位置更改或添加 FEATURE_AJAX_CONNECTIONEVENTS。 这将获得相同的效果。
创建一个名为
iexplore.exe
的新 DWORD,并将其值数据设置为0000000
。
如果在创建注册表项后,您希望再次启用连接事件,则可以将 iexplore.exe
的值设置为 0000001
。
新的回调处理程序
为了指示连接状态的更改,Internet Explorer 8 引入了以下回调处理程序:
- 当用户计算机丢失其网络连接时(例如,在拔出网络电缆或禁用网络适配器时),将触发 onoffline 处理程序。 当用户打开“脱机工作”设置时也会触发此处理程序。
- 当恢复计算机的网络连接时,将触发 ononline 处理程序。 当用户关闭“脱机工作”设置时也会触发此处理程序。