2

有没有更有效的方法来搜索 window.location.href?

window.location.href:http://www.example.com/6CATA/folder/file.html

我目前的代码是:

var searchWinHref = window.location.href;
if(searchWinHref.indexOf("/6CATA/") > -1) {
  alert('6CATA is in the window.location.href');
}

哪个工作得很好,但我正在尝试学习在可能的情况下优化代码的方法,如果我需要在一个页面上执行几次,我很想知道是否有更有效的方法来做到这一点?

编辑:

为了澄清,我需要偶尔在 URL 中搜索不同的变体,例如:6CATA 和 6CATB 等。

4

4 回答 4

2

不,那很好。您可能会使用location.pathname.split('/').contains("6CDATA"),但这是相当等价的。如果您想优化您的代码并真正关心这种微优化,请将结果缓存在一个变量中,如果您需要它几次。

于 2012-11-13T15:20:31.313 回答
1

您可以使用window.location.pathname,但您不会从那一小段代码中获得任何速度提升。

于 2012-11-13T15:16:41.623 回答
1

就性能而言,这看起来不错 - 特别是如果您只调用它几次。

但是,您确定需要在客户端执行此检查吗?这可能更适合在服务器上执行。但这取决于你...

于 2012-11-13T15:18:02.253 回答
1

http://jsperf.com/test-vs-match-vs-indexof-vs-search-2/2

这是一个基准,在这种情况下不需要优化

于 2012-11-13T15:19:02.913 回答