2012-11-13 84 views
2

是否有更有效的方法來搜索window.location.href?更有效的方法來搜索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'); 
} 

這工作得很好,但我在努力學習如何在可能情況下,如果我爲了優化代碼需要在頁面上多次執行此操作,我很想知道是否有更有效的方法來執行此操作?

編輯:

爲了澄清,我偶爾也要尋找不同的變化的網址,如:6CATA & 6CATB等

+0

過早的優化是一切罪惡......還是根:location.pathname可能是0.00000001毫秒更快 –

+0

這可能做到這一點的最好辦法,但你不應該多次做。 –

+1

如果你需要做一次以上,然後將結果存儲在一個變量,並檢查...'VAR指數= searchWinHref.indexOf(「/ 6CATA /」);' – Archer

回答

1

你可以使用window.location.pathname,但你不會得到任何提升速度從那小塊代碼中。

1

在性能方面,這看起來很好 - 特別是如果你只稱這是一個好幾次。

你確定你需要做這個檢查客戶端有關係嗎?這可能更適合在服務器上執行。但是,這是你的...

+0

我們只能訪問客戶端 - 不幸的是這是一個封閉的CMS系統! – JayDee

+0

啊...那麼,你去:) –

2

無不需要優化,這是相當不錯。您可以使用location.pathname.split('/').contains("6CDATA"),但這非常相當。如果你想優化你的代碼並真正關心這樣的微優化,那麼如果你需要幾次,結果緩存在一個變量中。

+0

[包含](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/contains)是Fx17 +僅 – mplungjan

+0

@mplungjan:我沒想到的prototype.js樣'包含'在數組上,但是 - 只是恨寫'!= - 1' :-) – Bergi

+0

> -1或> = 0更符合你的喜好? ;) – mplungjan

相關問題