在我的應用程序中有一個沉重的內存泄漏,但我沒有找到原因,這裏是背景。當角開始銷燬時,我們是否需要在指令中解除綁定事件偵聽器?
- 我使用AngularJS + JQuery的(插件)
許多聽衆也必然像下面這樣:
$(元素)。在( 「KEYUP」,函數(){});
所以,問題是
我需要通過以下取消綁定這些聽衆中的指令?
scope.$on("$destroy", function() {
$(element).off();
});
BTW,你通常如何找出一個Web應用程序的內存泄漏? 我使用鉻的配置文件(請參閱Profiling memory performance) 但我無法追溯到內存泄漏的代碼。你有什麼建議嗎?
非常感謝!
這就是需要的,除非你是結合所有範圍爲$ rootScope我不認爲。 –
您不必刪除它們,它們通常會被垃圾收集。您可能確實想要移除窗口的偵聽器,但如果處理程序與範圍的元素進行交互,就像滾動或消息事件一樣。請參閱http://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory – Kapep