一种提高清理DOM元素内容速度的方法

时间:2014-01-17 09:25:29

标签: javascript jquery performance

有! 在我的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并删除存储的丢失处理程序?像垃圾收集器这样的东西。

1 个答案:

答案 0 :(得分:2)

在容器中的元素上定义事件处理程序时,可以使用过滤器。例如,您可以使用:

$(document).on("click", "#item1", function() {
    ...
});

而不是:

$("#item1").on("click", function() {
    ...
});