Avez-vous plusieurs serveurs proxy dans votre organisation et ce fichier .pac est censé être spécifique au serveur avec l'adresse 10.1.1.116 ? Si ce n'est pas le cas, vous pouvez probablement vous débarrasser de cette vérification. Puisque FindProxyForURL()
est appelé pour chaque requête que votre navigateur doit faire dnsResolve()
peut potentiellement bloquer votre navigateur pendant un certain temps, en fonction de la façon dont votre DNS fonctionne.
Si vous avez besoin de ça dnsResolve()
alors un moyen de contourner cela est de le déplacer en dehors de FindProxyForURL()
:
var myProxyServerIP = dnsResolve("ProxyServer");
function FindProxyForURL(url, host) {
if (myProxyServerIP == "10.1.1.116")
if (dnsDomainLevels(host) == 0 ||
isInNet(host, "10.0.0.0","255.0.0.0") ||
isInNet(host, "125.0.0.0","255.0.0.0") ||
isInNet(host, "127.0.0.0","255.0.0.0") ||
isInNet(host, "204.223.70.250","255.255.255.255") ||
dnsDomainIs(host, ".muj.com") ||
dnsDomainIs(host, "sv.com.gt") ||
dnsDomainIs(host, "com.es.gt"))
return "DIRECT";
else return "PROXY 10.1.1.116:8080";
else return "DIRECT";
}
Cette modification fera en sorte que dnsResolve()
n'est appelé que lorsque le fichier .pac est chargé et non à chaque fois qu'une demande est adressée au navigateur. Vous devrez déterminer vous-même si cela est possible dans votre environnement en fonction de la fréquence à laquelle l'adresse change. Mais encore une fois, l'adresse de votre serveur proxy doit être statique.
Est-ce que les sous-réseaux que vous vérifiez avec la fonction isInNet()
appelle une correspondance biunivoque des domaines que vous vérifiez avec les dnsDomainIs()
appels ? Si c'est le cas, vous avez une redondance et vous pouvez supprimer une série d'appels.
En dehors de cela, je ne vois rien d'autre à recommander sur la base de ce que je peux discerner de votre environnement à partir de votre question.