我正在尝试修复 IE 7 中的内存泄漏。使用 Drip 进行调查,但当大多数动态生成的 DOM 元素没有唯一的 id 时,它并没有多大帮助。
提示?
您应该尝试 Microsoft 内部开发的 Javascript Memory Leak detector。
嗯,最好的办法是了解导致它们的原因,这样您就可以批判性地查看代码,识别可能导致泄漏的模式,然后避免或重构它们。
这里有几个链接可以帮助您入门,两者都非常有用:
请记住,内存泄漏实际上是由于您没有自行清理造成的。您所需要的只是一个小组织。
过去,我创建了自己的代理对象来将事件附加到 DOM 元素。它使用我的 javascript 库的 api 来实际设置和删除事件。代理本身只是跟踪所有引用,以便我可以调用它的方法来清理所有潜在的内存泄漏。
出于我的目的,我可以在页面上调用一个解构函数,以便在用户离开页面时清理整个页面的泄漏。
您可能需要更细粒度,但技术是相同的。
通常,内置浏览器工具,例如Chrome DevTools或Mozilla Developer工具。
如果需要更强大的技术或有其他要求,第三方工具如:Light House或Memory Profiler正在等待您使用