Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Хранение в DOM (https://javascript.ru/forum/misc/32667-khranenie-v-dom.html)

bot87 25.10.2012 01:59

Хранение в DOM
 
что собой представляет хранение информации в DOM?
Берем создаем какой нибудь атрибут и туда сохр данные?

BallsShaped 25.10.2012 02:35

Цитата:

Сообщение от bot87
Берем создаем какой нибудь атрибут и туда сохр данные?

В общем, да. По фен-шую, в атрибуты с префиксом "data-". Там, где это поддерживается, можно использовать свойство dataset:
<div></div>
<script>
var element = document.querySelector( "div" );
element.dataset.key = "value";

alert( element.getAttribute( "data-key" ) == element.dataset.key );
</script>

Можешь еще посмотреть, как это используется в knockout.

bot87 25.10.2012 02:48

ну а смысл их туда сохранять?Атрибут дата это валидный атрибут но ведь мы можем и создать свой ?


Оно ведь только до закрытия/обновления страници?Чем это отличается что мы просто их запишем в массив/объект?

BallsShaped 25.10.2012 03:25

Цитата:

Сообщение от bot87
Атрибут дата это валидный атрибут но ведь мы можем и создать свой ?

Можем, но лучше все же использовать специально сделаные для этого механизмы.
Цитата:

Сообщение от bot87
Оно ведь только до закрытия/обновления страници?Чем это отличается что мы просто их запишем в массив/объект?

В первую очередь, это нужно для передачи данных об элементе, а не для внутренней логики. Опять же, см. knockout.
Цитата:

Сообщение от bot87
ну а смысл

Никакого сакрального смысла. Просто вариант архитектурного решения.

bot87 25.10.2012 09:39

спасибо.

tenshi 27.10.2012 15:10

> По фен-шую, в атрибуты с префиксом "data-".
по феншую надо использовать префиксы специфичные для разных групп разработчиков. от одного префикса для всех нет никакого проку.

> можно использовать свойство dataset
кривой костыль

> что собой представляет хранение информации в DOM?
с какой целью?

> Берем создаем какой нибудь атрибут и туда сохр данные?
лучше в поле объекта, если не нужно, чтобы сохраненные данные переживали сериализацию и парсинг.

tenshi 27.10.2012 15:22

в целом кастомные атрибуты использовать можно и нужно. важно только использовать свои префиксы, чтобы не конфликтовать с другими библиотеками и стандартными аттибутами.

по стандарту надо объявить своё пространство имён:
<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ya="http://yandex.ru/namespace/"
    >


и далее можно использовать атрибуты вида:
ya:result-id="42"


но с практической точки зрения, проще не заморачиваться с пространствами имён (так как всё-равно используется не xml парсер), и просто использоать префикс, например, с подчёркианием:
ya_result-id="42"


Часовой пояс GMT +3, время: 11:26.