Как связать объекты JavaScript с узлами DOM? - PullRequest
3 голосов
/ 17 декабря 2010

Могу ли я, и если да, то как я могу связать объекты javascript с узлами DOM?Мои требования:

  • реальные объекты, а не только JSON-stringified-атрибуты или около того
  • не должно пропускать память
  • также должно работать в нестандартных браузерах, таких какIE8 или около того

Я думал о том, чтобы сделать это с глобальным массивом, который хранит данные и помещает индексы в атрибуты узлов, но это приведет к утечке памяти, потому что есть еще ссылка из массива наданные, когда узлы больше не находятся в DOM-ом.Это для веб-приложения, так что это может быть проблемой.

Ответы [ 3 ]

4 голосов
/ 17 декабря 2010

Ну, у jQuery есть система data , которую вы можете попробовать.Говорят, в нем нет утечек памяти.

1 голос
/ 10 ноября 2016

Идеальный вариант использования для WeakMap , при условии, что вы ориентируетесь на новые браузеры (Chrome 36, Edge 12, IE 11, Firefox 36, Safari 7.1):

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

window.map.set(node, data);

это не будет утечкапоскольку на ключи WeakMap имеются слабые ссылки.

0 голосов
/ 17 декабря 2010

Так как теги не упоминают jquery. Выложить ответ с Mootools.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...