Navigation lente dans Internet Explorer en raison de plusieurs appels de fonction isInNet

Cet article vous aide à résoudre le problème où un problème entraîne la navigation d’Internet Explorer plus lentement que prévu.

S’applique à :   Internet Explorer 9, Internet Explorer 10
Numéro de la ko d’origine :   3140773

Symptômes

Prenons l’exemple du scénario suivant :

  • Internet Explorer est configuré pour utiliser un fichier PAC (Proxy Auto Configuration) ou WPAD pour les paramètres de proxy.

  • Le fichier PAC contient plusieurs appels à la isInNet() fonction, qui ressemblent à ce qui suit :

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

S’il existe plusieurs appels de ce type dans le fichier PAC, Internet Explorer prend plus de temps que prévu pour isInNet() naviguer vers une page web.

Cause

Ce problème se produit car Internet Explorer doit effectuer des appels supplémentaires au sous-système DNS pour déterminer l’adresse IP du paramètre hôte. Elle doit le faire afin de comparer l’adresse IP du paramètre hôte à la plage d’adresses IP fournie dans l’appel isInNet() de fonction.

Résolution

Pour empêcher ces appels supplémentaires au sous-système DNS chaque fois qu’un hôte est passé à l’appel de fonction, prenez les mesures nécessaires pour résoudre le nom d’hôte en adresse IP en dehors des appels en passant l’adresse IP au lieu du nom isInNet() isInNet() d’hôte.

Pour ce faire, modifiez l’exemple de code dans la section Symptômes comme suit :

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

Références

Pour plus d’informations, voir Optimisation des performances avec des scripts de configuration de proxy automatique (PAC).