所以我發現我的應用程序在一些擴展使用後變得緩慢。特別是當我創建很多視圖,每個項目都在一個長列表中。我曾經想過,通過view.remove()去除這些視圖可以幫助解決問題,但是當它們從頁面中移除時,我注意到Chrome的時間軸顯示我的DOM節點數量不會減少。我添加的每個視圖都會繼續增加此計數。事實上,似乎減少此節點計數的唯一一件事情就是刷新頁面。骨幹刪除視圖和DOM節點
這感覺不對我,我覺得我搞砸了一些真正的基礎,因爲這個問題似乎與我的所有意見,並不僅僅是這些的發生。這些查看列表發生得更快,因爲它們有很多。
有沒有人有什麼建議,我應該找什麼?什麼樣的原因會導致這種行爲?
我會提供代碼,但我不知道會有什麼幫助。
TL; DR - View.remove()是從頁面移除的觀點,但我的DOM節點計數繼續走升不下來。
您是否檢查過它是否可以在其他瀏覽器中重現?可能是Chrome瀏覽器的Web檢查器的一個錯誤。對於少於1200個Dom節點而言,這是完全正確的,當它超出您必須檢查哪些視圖不顯示並立即將其刪除時 – Deeptechtons 2012-07-21 05:24:19
您的視圖是否傾聽任何模型或收集事件?這可能會導致在視圖中通過'this.el'和'this。$ el'泄漏。 – 2012-07-21 05:31:45
@Deeptechtons我希望我能夠說這是一個Chrome檢查器問題,但我很高興確保最薄弱的環節正坐在這臺電腦前。 ;-)注意,我想我應該澄清我的DOM元素正在被刪除。像document.getElementsByTagName(「*」)。length這樣的東西會導致適當的計數更改,具體取決於我添加還是刪除視圖。我使用Derick Baileys殭屍刪除的想法,並且每個視圖都有一個關閉的功能,即成功刪除和解除綁定事件。所以我的事件下降了,意見也沒有了(至少表面上)。但節點計數仍然存在。 – jmk2142 2012-07-21 05:44:47