Просмотр полной версии : Хранение в DOM
что собой представляет хранение информации в DOM?
Берем создаем какой нибудь атрибут и туда сохр данные?
BallsShaped
25.10.2012, 02:35
Берем создаем какой нибудь атрибут и туда сохр данные?
В общем, да. По фен-шую, в атрибуты с префиксом "data-". Там, где это поддерживается, можно использовать свойство dataset:
<div></div>
<script>
var element = document.querySelector( "div" );
element.dataset.key = "value";
alert( element.getAttribute( "data-key" ) == element.dataset.key );
</script>
Можешь еще посмотреть, как это используется в knockout (http://knockoutjs.com/).
ну а смысл их туда сохранять?Атрибут дата это валидный атрибут но ведь мы можем и создать свой ?
Оно ведь только до закрытия/обновления страници?Чем это отличается что мы просто их запишем в массив/объект?
BallsShaped
25.10.2012, 03:25
Атрибут дата это валидный атрибут но ведь мы можем и создать свой ?
Можем, но лучше все же использовать специально сделаные для этого механизмы.Оно ведь только до закрытия/обновления страници?Чем это отличается что мы просто их запишем в массив/объект?
В первую очередь, это нужно для передачи данных об элементе, а не для внутренней логики. Опять же, см. knockout. (http://knockoutjs.com/)ну а смыслНикакого сакрального смысла. Просто вариант архитектурного решения.
> По фен-шую, в атрибуты с префиксом "data-".
по феншую надо использовать префиксы специфичные для разных групп разработчиков. от одного префикса для всех нет никакого проку.
> можно использовать свойство dataset
кривой костыль
> что собой представляет хранение информации в DOM?
с какой целью?
> Берем создаем какой нибудь атрибут и туда сохр данные?
лучше в поле объекта, если не нужно, чтобы сохраненные данные переживали сериализацию и парсинг.
в целом кастомные атрибуты использовать можно и нужно. важно только использовать свои префиксы, чтобы не конфликтовать с другими библиотеками и стандартными аттибутами.
по стандарту надо объявить своё пространство имён:
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ya="http://yandex.ru/namespace/"
>
и далее можно использовать атрибуты вида:
ya:result-id="42"
но с практической точки зрения, проще не заморачиваться с пространствами имён (так как всё-равно используется не xml парсер), и просто использоать префикс, например, с подчёркианием:
ya_result-id="42"
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot