繁体   English   中英

如何将javascript对象与DOM节点相关联?

[英]How to associate javascript objects with DOM nodes?

我可以,如果是这样,我如何将javascript对象与DOM节点相关联? 我的要求:

  • 真实的对象,而不仅仅是JSON字符串化的属性
  • 不应泄漏记忆
  • 也应该在IE8等非标准浏览器中工作

我正在考虑使用一个全局数组来保存数据并将索引放在节点的属性中,但这会泄漏内存,因为当节点不在DOM中时,仍然存在从数组到数据的引用。 这是一个Web应用程序,所以这可能是一个问题。

好吧,jQuery有数据系统,你可以尝试一下。 他们说它没有内存泄漏。

假设你的目标是更新的浏览器(chrome 36,edge 12,IE 11,firefox 36,safari 7.1),那么WeakMap的完美用例:

let map = new WeakMap();
let node = document.getElementById("unicorn");
let data = {};

window.map.set(node, data);

这不会泄漏,因为WeakMap的键被弱引用。

由于标签没有提到jquery。 用Mootools发布答案。

http://mootools.net/docs/core/Element/Element#Element:store

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM