为什么我要使用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>
答案 0 :(得分:1)
内存泄漏不应该是您主要关注的问题。你引用了jquery文档(自己强调):
允许我们将任何类型的数据附加到DOM元素
天真的方法将您限制为字符串值。虽然自动转换可能足以满足基本数据类型,但请考虑附加一个完整的javascript对象。