Powolne przeglądanie w programie Internet Explorer z powodu wielu wywołań funkcji isInNet

Ostrzeżenie

Wycofana, nieobsługiwana aplikacja klasyczna Internet Explorer 11 ma zostać trwale wyłączona za pośrednictwem aktualizacji aplikacji Microsoft Edge dla niektórych wersji systemu Windows 10. Aby uzyskać więcej informacji, zobacz artykuł pt. Często zadawane pytania dotyczące wycofywania aplikacji klasycznej Internet Explorer 11.

Ten artykuł pomaga rozwiązać problem polegający na tym, że problem powoduje wolniejsze przeglądanie w programie Internet Explorer niż oczekiwano.

Dotyczy: Internet Explorer 9, Internet Explorer 10
Oryginalny numer KB: 3140773

Symptomy

Rozpatrzmy następujący scenariusz:

  • Program Internet Explorer jest skonfigurowany do używania pliku automatycznej konfiguracji serwera proxy (PAC) lub WPAD dla ustawień serwera proxy.

  • Plik PAC zawiera kilka wywołań funkcji, które są podobne do isInNet() następujących:

    function FindProxyForURL(url, host)
    {
    
        if (isInNet(host, "192.168.3.0","255.255.255.0")) ||
        isInNet(host, "10.10.1.0", "255.255.255.0") ||
        isInNet(host, "72.10.0.0", "255.255.0.0")) ||
        isInNet(host, "172.16.0.0", "255.255.0.0"))
        {
    
            return PROXY <proxyname:PORT>;
    
        }
    }
    

Jeśli w pliku PAC istnieje kilka takich isInNet() wywołań, przeglądanie strony internetowej w programie Internet Explorer trwa dłużej niż oczekiwano.

Przyczyna

Ten problem występuje, ponieważ program Internet Explorer musi wykonywać dodatkowe wywołania podsystemu DNS w celu określenia adresu IP parametru hosta. Musi to zrobić, aby porównać adres IP parametru hosta z zakresem adresów IP podanym w isInNet() wywołaniu funkcji.

Rozwiązanie

Aby zapobiec tym dodatkowym wywołaniu podsystemu DNS za każdym razem, gdy host jest przekazywany do isInNet() wywołania funkcji, wykonaj kroki, aby rozpoznać nazwę hosta na adres IP poza isInNet() wywołaniami, przekazując adres IP zamiast nazwy hosta.

W tym celu zmodyfikuj przykładowy kod w sekcji Objawy w następujący sposób:

function FindProxyForURL(url, host)
{
    var resolved_IP = dnsResolve(host);
    if (isInNet(resolved_IP, "192.168.3.0","255.255.255.0")) ||
    isInNet(resolved_IP, "10.10.1.0", "255.255.255.0") ||
    isInNet(resolved_IP, "72.10.0.0", "255.255.0.0")) ||
    isInNet(resolved_IP, "172.16.0.0", "255.255.0.0"))
    {
        return PROXY <proxyname:PORT>;
    }
}

Informacje

Aby uzyskać więcej informacji, zobacz Optymalizowanie wydajności przy użyciu skryptów automatycznej konfiguracji serwera proxy (PAC).