我有一個網格,並且有一列包含<a>
錨標記,其中包含<data-..>
標記中的一些附加信息,並且有一個類名<class='myspeciallink'>
。在我不顯眼的JS腳本中,我選擇了具有該類名稱的所有元素並應用live('click')
。我需要這是live(),因爲網格是在運行時生成的。live('click')and performance
的live('click')
處理程序中,會發生什麼?我使用這些附加數據,並根據該數據向頁面添加<div>
。它反過來用於生成jQuery UI對話框。它在我的電腦上效果很好。
但是!這在現實世界中如何工作?我應該爲可能的性能影響而煩惱嗎?我覺得在瞬間應用live()十幾個元素
會影響性能。尤其是像我相當複雜的處理程序 - 它需要獲取數據,分析數據,創建一個div,應用對話等
這是否聞起來像一個糟糕的設計?你能否提出一種不同的方法,或者我的擔憂是沒有根據的?我可以使用某種分析器工具來查找JavaScript中的瓶頸嗎?
UPD:依然沒有人提出任何分析工具。螢火蟲和鉻開發工具是好的,但也許有更好的東西?
你並不需要,要成爲'.live()'。你需要這個'.delegate()'。 – 2011-05-18 15:38:02
你是對的,我不需要傳播冒泡。 – Agzam 2011-05-18 15:50:20
但在我的情況下,我只能做「$(‘身體’)。委託(‘myspeciallink’,‘點擊’」 ......因爲這樣的鏈接,可以放在任何地方 – Agzam 2011-05-18 16:00:42