複数の isInNet 関数Internet Explorer呼び出しにより、インターネットでの低速な閲覧

この記事は、問題が原因で予期したよりもInternet Explorerする問題を解決するのに役立ちます。

適用対象:   Internet Explorer 9、Internet Explorer 10
元の KB 番号:   3140773

現象

次のような状況で問題が発生します。

  • Internet Explorer設定にプロキシ自動構成 (PAC) ファイルまたは WPAD を使用するように構成されている。

  • 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 ファイルにこのような呼び出しが複数Internet Explorer Web ページを参照するのに予想以上 isInNet() に時間がかかります。

原因

この問題は、ホスト Internet Explorer IP アドレスを決定するために DNS サブシステムに追加の呼び出しを行う必要がある場合に発生します。 これは、ホスト パラメーターの IP アドレスと、関数呼び出しで提供される IP アドレス範囲を比較するために isInNet() 行う必要があります。

解決方法

ホストが関数呼び出しに渡されるたび、DNS サブシステムへのこれらの追加の呼び出しを防ぐには、ホスト名の代わりに IP アドレスを渡して、ホスト名を呼び出しの外部の IP アドレスに解決する手順を実行します。 isInNet() isInNet()

これを行うには、[現象] セクションのサンプル コード 次のように変更します。

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>;
    }
}

関連情報

詳しくは、自動プロキシ構成スクリプト (PAC) によるパフォーマンスの最適化に関するページをご覧ください。