【问题标题】:PAC file best practicePAC 文件最佳实践
【发布时间】:2015-07-23 13:38:19
【问题描述】:

我正在尝试清理 PAC 文件。以下哪个代码块更简洁和/或更快?

if (host == "localhost")                                  {return "DIRECT";}
if (shExpMatch(host, "localhost.*"))                      {return "DIRECT";}
if (host == "127.0.0.1")                                  {return "DIRECT";}
if (isPlainHostName(host))                                {return "DIRECT";}
if (isInNet(hostIP, "10.0.0.0", "255.0.0.0"))        {return "DIRECT";}

if ( host == "localhost" ||
     host == "127.0.0.1" ||
     shExpMatch( host, "localhost.*" ) ||
     isPlainHostName( host ) ||
     isInNet( hostIP, "10.0.0.0", "255.0.0.0" ))
return "DIRECT";

我假设如果目标主机确实是“localhost”,那么第一个主机会更快,因为它会立即返回并且不需要评估剩余的条件。但是假设没有一个条件为真,那么首选哪种方法呢?

【问题讨论】:

  • 仅供参考,JavaScript 是 短路 的,所以使用 or 第一个 true 条件会停止进一步的评估。至于哪个更好,老实说,我认为它是零差异。

标签: javascript pac


【解决方案1】:

第二个选项更快,因为它不必跳转多个返回语句。正如 Alex K. 在他的评论中提到的那样,or-cascade 中的第一个真实语句会停止评估。

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2013-11-18
    • 2018-07-25
    • 2020-12-04
    相关资源
    最近更新 更多