使用 dnsResolve 和 isInNet() 函数解析 DNS 需要很长时间

使用 dnsResolve 和 isInNet() 函数解析 DNS 需要很长时间

可能重复:
dnsResolve 和 isInNet 函数问题

我们有一个 Proxy.pac 文件:

function FindProxyForURL(url, host)

 {

if (dnsResolve("ProxyServer") == "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";
 }

运行正常,但很多用户抱怨,因为自部署 proxy.pac 以来,导航耗时太长。看来 dnsResolve 和 isInNet 是导致问题的原因。还有其他方法可以改进这个脚本吗?或者如何加速 DNS 解析?

答案1

我的理解是,每次调用 isInNet(host, ip, mask) 时,它都会尝试从 DNS 解析主机,这意味着多次解析,每次解析都会增加时间。

尝试解析一次,将这个解析的主机分配给一个变量,然后在所有 isInNet 调用中用它替换“主机”,以加快速度......类似于;

var resolvedIP = dnsResolve(host);

...

isInNet(resolvedIP, "10.0.0.0", "255.0.0.0") 

相关内容