在dom节点对象上使用jQuery data()与property

时间:2014-04-25 09:44:27

标签: javascript jquery dom

为什么我要使用jQuery' data(...)$.data(...)而不是仅仅在DOM节点对象上设置属性,在"静态dom"我认为没有内存泄漏风险的上下文?

例如,为什么:

$('#my-id').data('mykey', 42);
// ...
var retrived_value = $('#my-id').data('mykey');

...而不是;

var myel = document.getElementById('my-id');
myel._mykey = 42;
// ...
var myel_second_reference = document.getElementById('my-id');
var retrieved_value = myel_second_reference._mykey;

我知道jQuery文档说这个:

  

允许我们以任何方式将任何类型的数据附加到DOM元素   安全的循环引用,因此没有内存泄漏

...但是在没有创建或删除DOM节点的简单使用场景中会发生任何此类泄漏吗?或者,换句话说,我可以安全地在&#34;静态DOM&#34; 情节中使用&#34;天真的方法&#34; ?< / p>

1 个答案:

答案 0 :(得分:1)

内存泄漏不应该是您主要关注的问题。你引用了jquery文档(自己强调):

  

允许我们将任何类型的数据附加到DOM元素

天真的方法将您限制为字符串值。虽然自动转换可能足以满足基本数据类型,但请考虑附加一个完整的javascript对象。