缓慢在 Internet Explorer 中浏览由于多个 isInNet 函数调用

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3140773
症状
请考虑以下情形:
  • Internet Explorer 配置代理服务器设置为使用代理服务器自动配置 (PAC) 文件或 WPAD。
  • PAC 文件包含几个调用isInNet()函数中,它类似于以下内容 ︰

    函数 FindProxyForURL (url 的主机)
    {

    如果 (isInNet (主机、"192.168.3.4","255.255.255.0")) | |
    isInNet (主机,"10.10.1.1","255.255.255.0") | |
    isInNet (主机,"72.10.10.10""255.240.0.0")) | |
    isInNet (主机,"172.16.0.0""255.240.0.0"))
    {

    返回代理<proxyname:PORT>;


    }


    }</proxyname:PORT>

如果有多个此类isInNet()PAC 文件中调用,Internet Explorer 比预期时间长来浏览网页。
原因
因为 Internet Explorer 必须执行附加调用到 DNS 子系统,以确定主机参数的 IP 地址,将发生此问题。它必须这样做才能比较主机参数与isInNet()函数调用中提供的 IP 地址范围的 IP 地址。
解决方案
为了防止其他 DNS 子系统调用,每次一个"主机"传递给isInNet()函数调用,采取步骤通过传递而不是主机名的 IP 地址为isInNet()调用的外部 IP 地址解析的主机名。

若要执行此操作,请按如下方式修改"症状"一节中的示例代码 ︰
  • 函数 FindProxyForURL (url 的主机)
    {

    var resolved_IP = dnsResolve(host);


    如果 (isInNet (resolved_IP,"192.168.3.4","255.255.255.0")) | |
    isInNet (resolved_IP,"10.10.1.1","255.255.255.0") | |
    isInNet (resolved_IP,"72.10.10.10""255.240.0.0")) | |
    isInNet (resolved_IP,"172.16.0.0""255.240.0.0"))
    {

    返回代理<proxyname:PORT>;

    }

    }</proxyname:PORT>

代理服务器自动配置;Internet Explorer;WPAD;isInNet dnsResolve;

警告:本文已自动翻译

属性

文章 ID:3140773 - 上次审阅时间:03/18/2016 01:43:00 - 修订版本: 1.0

Windows Internet Explorer 9, Windows Internet Explorer 8, Windows Internet Explorer 10

  • kbmt KB3140773 KbMtzh
反馈