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和更好,基本上.
来自http://api.jquery.com/jQuery.data/:“jQuery.data() 方法允许我们以一种安全的方式将任何类型的数据附加到 DOM 元素,从而避免循环引用,从而避免内存泄漏。我们可以一次检索一个元素的多个不同值,或者作为一组检索。”
另外,不要忘记您可以使用 HTML5 data-* 属性来存储数据。