3

我在我的网页中使用 jquery。我看到发生了很多内存泄漏,过了一会儿整个浏览器就停止了。我使用了筛子工具,发现数量在不断增加。的 DOM 元素,每次都没有。4。

我在关联事件的方式上做错了吗?还是因为我每 X 秒使用 setTimeout 重绘我的应用程序?

事件关联:

$('.bir_Names').click(showNames); 选择器 $('.bir_Names') 演化为一组大约 300 个元素,每个元素在单击时调用该函数。

setTimeout 每 X 分钟我删除应用程序中的每个 HTML 元素并重新绑定新数据并关联事件。我使用 jquery remove() 删除元素。也尝试过 innerHTML = '' 和 empty() 。

我看到每次重绘都有近 30-40 MB 的跳跃,并且 Sieve 表明实际上没有删除任何已删除的节点。

任何帮助将不胜感激。这件事快把我逼疯了。

谢谢。

4

1 回答 1

1

您没有提到哪个浏览器,但一些谷歌搜索似乎表明这是 IE 的一个已知问题。这是一种潜在的解决方法:

http://forum.jquery.com/topic/possible-memory-leak-in-remove-and-empty

请注意,这是指 jQuery 的 1.2.x 版本。在您做任何事情之前,请确保您正在运行最新的 1.6.x 版本,以首先查看该缺陷是否已在 jQuery 中修复。

[编辑] ack...您确实声明了您的浏览器...'所有'...所以也许忽略第一个链接。

于 2011-06-25T18:34:12.180 回答