我有一個站點,每個頁面上有許多jQuery事件處理程序,全部在一個大的.js文件中。我應該擔心會附加很多不需要的事件處理程序/偵聽器嗎?
這意味着對於任何頁面來說,大多數事件處理程序都是針對不存在並且根本不會使用的HTML。
請問這是我的表現嗎?
編輯:作爲一個例子,大多數事件處理程序會做這樣的事:
$(".page").on("click", ".notes .add", function(){ ... });
因爲.on()
作品新的元素,將它總是被浪費的處理能力,或將只進來在ajax調用之後DOM發生變化時生效?爲了進一步澄清我的問題,我想我應該把它分成兩部分。
- 如果有一個表演ding,什麼時候會發生? (總是,在任何情況下,只在DOM上更改,僅在加載時)。
- 是否足夠擔心?我如何衡量這一點?如果有一千個這樣的聽衆,那麼這個時間是以秒,毫秒,微秒來衡量的嗎?我知道我可以加載頁面,看看它有什麼'感覺',但是我希望有一個想法,如果我在開始之前構建了錯誤的東西!
那麼如果你沒有像'if($(element).length){//處理這裏}那樣做'你會產生不必要的開銷,這也會產生一個錯誤,說'找不到元素' – Ohgodwhy 2012-08-07 00:25:38
那麼,jQuery將嘗試查找元素,它不會成功,因此不會對處理程序做任何事情。只有您可以測試這是否實際影響您的網站/腳本的性能。顯然它正在做*某事*,這比什麼都沒有,但這並不意味着你會注意到一個區別。 – 2012-08-07 00:26:17