由於多個 isInNet 函數通話,Internet Explorer 中的慢速流覽

本文可協助您解決問題導致 Internet Explorer 流覽的速度超過預期的速度。

適用于:   Internet Explorer 9,Internet Explorer 10
原始 KB 編號:   3140773

徵狀

請試想下列案例:

  • Internet Explorer 設定為使用 Proxy Auto Configuration (PAC) 檔案或 WPAD for proxy 設定。

  • PAC 檔案包含數個呼叫的 isInNet() 功能,如下所示:

    function FindProxyForURL(url, host)
    {
    
        if (isInNet(host, "192.168.3.4","255.255.255.0")) ||
        isInNet(host, "10.10.1.1", "255.255.255.0") ||
        isInNet(host, "72.10.10.10", "255.240.0.0")) ||
        isInNet(host, "172.16.0.0", "255.240.0.0"))
        {
    
            return PROXY <proxyname:PORT>;
    
        }
    }
    

如果 PAC 檔案中有數個這類 isInNet() 呼叫,Internet Explorer 的時間會比預期的長,以流覽至網頁。

原因

發生此問題的原因是 Internet Explorer 必須對 DNS 子系統進行額外的呼叫,才能決定 host 參數的 IP 位址。 必須這樣做才能將主機參數的 IP 位址與函數呼叫中提供的 IP 位址範圍進行比較 isInNet()

解決方案

若要在每次主機傳遞至函數呼叫時,避免對 DNS 子系統進行這些額外呼叫 isInNet() ,請 isInNet() 傳遞 IP 位址(而非主機名稱),以將主機名稱解析為呼叫以外的 ip 位址。

若要這麼做,請修改 [ 徵兆 ] 區段中的範例程式碼,如下所示:

function FindProxyForURL(url, host)
{
    var resolved_IP = dnsResolve(host);
    if (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"))
    {
        return PROXY <proxyname:PORT>;
    }
}

參考

如需詳細資訊,請參閱 使用自動 proxy 設定腳本優化效能 (PAC)