我正在使用
为了进行测试,我创建了一个样本代码。它创建一个视图对象,调用其
返回的
然而,当我运行
我怀疑这是否是内存泄漏。 如果是,我的代码没有保留任何引用。 那么问题出在
这里是样本代码的链接。 我还附上了堆快照的屏幕截图。
Backbonejs
和Requirejs
创建单页Web应用程序。看起来我的应用程序存在内存泄漏问题。为了进行测试,我创建了一个样本代码。它创建一个视图对象,调用其
render
函数,并将返回的html
附加到DOM
中。返回的
html
有一个button
。单击按钮后,它的callback
调用destroy
函数,视图被销毁。然而,当我运行
chrome heap profiler
时,我可以看到仍然存在detached DOM tree
。深入研究后,可以看到jQuery
保留了references
。我怀疑这是否是内存泄漏。 如果是,我的代码没有保留任何引用。 那么问题出在
jQuery
吗?这里是样本代码的链接。 我还附上了堆快照的屏幕截图。
![Heap snapshot 1](https://istack.dev59.com/6d9II.webp)
![Heap snapshot 2](https://istack.dev59.com/UA3cn.webp)
![References for Detached DOM element](https://istack.dev59.com/ZFTyt.webp)
listenTo
和stopListening
函数,这些函数正是为了处理这种问题而引入的。请记住,在视图上调用remove
也会调用stopListening
。 - namero999