使用jQuery/.data()避免内存泄漏

Bar*_*ast 6 javascript jquery dom

我正在使用jQuery动态创建HTML元素,现在需要存储针对它们的JavaScript数据.但是,我现在担心内存泄漏,因为我从来没有在我的对象上实际调用'remove'.我'.''''''''''''''''''''''''''''''''''''''''''' jQuery的文档似乎暗示我应该调用remove来清理它在对象上的足迹 - 事件,数据等.

这在现代浏览器中是否是必要的,或者对元素的任何引用的消失是否会为我做这个?

另一种表达我问题的方法; 这个脚本片段是否会泄漏内存?

function createElement()
{    
    var newDiv = $("<div>")
       .data("test", "test data")
       .appendTo(document.body)
       .detach();

    setTimeout(createElement, 10);
}

createElement();
Run Code Online (Sandbox Code Playgroud)

就此而言,即使没有 .data()调用,这是否会泄漏内存?

我对支持非常旧的浏览器不感兴趣.IE9和更好,基本上.

Adr*_*ian 2

来自http://api.jquery.com/jQuery.data/:“jQuery.data() 方法允许我们以一种安全的方式将任何类型的数据附加到 DOM 元素,从而避免循环引用,从而避免内存泄漏。我们可以一次检索一个元素的多个不同值,或者作为一组检索。”

另外,不要忘记您可以使用 HTML5 data-* 属性来存储数据。