有! 在我的AJAX应用程序中,我在页面中有很多内容。因此,当用户更改页面时,我必须清除页面div中的先前内容。使用jQuery:cont.empty()或cont.html('')清除DOM元素内容和相关数据,事件等。但由于内容很大,页面的性能会急剧下降。有时需要500毫秒来清除快速机器上的内容。我找到了一种使用纯JavaScript函数快速清除容器的方法:
function empty(element) {
var i;
for (i = element.childNodes.length - 1; i >= 0; i--)
element.removeChild(element.childNodes[i]);
}
遗憾的是,这种方法会产生内存泄漏,因为它不会清除缓存中关联的元素jQuery数据。
您能否给我一个意见或方法,以便快速清除内容并防止内存泄漏。
例如,有没有办法用本机函数快速清除内容,在某些时候(间隔函数)循环$ .cache并删除存储的丢失处理程序?像垃圾收集器这样的东西。
答案 0 :(得分:2)
在容器中的元素上定义事件处理程序时,可以使用过滤器。例如,您可以使用:
$(document).on("click", "#item1", function() {
...
});
而不是:
$("#item1").on("click", function() {
...
});