У Вас есть несколько прокси-серверов в Вашей организации, и этот .pac файл, как предполагается, характерен для сервера с адресом 10.1.1.116? В противном случае можно, вероятно, просто избавиться от той проверки. С тех пор FindProxyForURL()
назван для каждого запроса, который должен выполнить Ваш браузер dnsResolve()
может потенциально заблокировать Ваш браузер в течение довольно мало времени в зависимости от того, как хорошо Ваш DNS работает.
Если Вам нужно это dnsResolve()
назовите затем один способ двигаться, который должен переместить его за пределами 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";
}
Это изменение сделает его так, чтобы dnsResolve()
только назван, когда .pac файл загружается вместо каждого раза, когда запрос выполнен к браузеру. Необходимо будет определить для себя, если это будет чем-то, что можно сделать в среде на основе того, как часто тот адрес изменился бы. Но снова, адрес Вашего прокси-сервера должен быть статичным.
Подсети, с которыми Вы сверяетесь isInNet()
называет непосредственную карту доменов, с которыми Вы сверяетесь dnsDomainIs()
вызовы? Раз так затем Вы имеете дублирование там и можете удалить один один набор вызовов.
Кроме этого, я не вижу ничто больше для рекомендации на основе того, что я могу различить среды от вопроса.
Для каждого вызова функции isInNet выполняется поиск в DNS, если хост не является IP-адресом. Это замедлит процесс, так как вам нужно будет выполнить 4 поиска DNS и дождаться ответа от DNS-сервера. Вы можете сделать следующее, чтобы уменьшить количество DNS-вызовов до одного.
function FindProxyForURL(url, host) {
if (dnsResolve("ProxyServer") == "10.1.1.116")
hostip=dnsResolve(host);
if (dnsDomainLevels(host) == 0 ||
isInNet(hostip, "10.0.0.0","255.0.0.0") ||
isInNet(hostip, "125.0.0.0","255.0.0.0") ||
isInNet(hostip, "127.0.0.0","255.0.0.0") ||
isInNet(hostip, "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";
}