Использование jQuery.data - PullRequest
       3

Использование jQuery.data

6 голосов
/ 26 августа 2009

Хорошо, я признаю: я широко использовал jQuery.attr для хранения пользовательских данных в элементах DOM во многих, многих сценариях. Мне интересно, если конвертировать весь мой сценарий, чтобы использовать jQuery.data вместо jQuery.attr. Насколько я понимаю, преимущества jQuery.data:

  • производит аккуратный и правильный код HTML
  • может хранить данные любого типа (объекты, массивы, ...) на элементах

Основное преимущество пользовательских атрибутов:

  • Если веб-страницы не являются строгим HTML, я могу создать HTML-код с пользовательскими атрибутами на сервере
  • В firebug легко проверить мой HTML-код в поисках моих пользовательских атрибутов

Может кто-нибудь сказать мне, если я что-то пропустил или существуют проблемы, которые делают использование jQuery.data весьма предпочтительным?

Ответы [ 2 ]

5 голосов
/ 26 августа 2009

Ты в значительной степени понял. Но знаете ли вы каждый атрибут HTML? Существует множество атрибутов, которые используются программами чтения с экрана и другими инструментами удобства использования, которые не являются стандартными (пока). Что происходит, когда вы случайно используете атрибут role и программа чтения с экрана подхватывает его? Использование $.data не только аккуратнее, но и безопаснее для вас.

РЕДАКТИРОВАТЬ: я узнал кое-что прошлой ночью, что имеет отношение к этому вопросу. В HTML5 вы можете указать пользовательские атрибуты для хранения данных. Эти пользовательские атрибуты должны быть указаны с использованием префикса «data-». См. спецификацию для получения более подробной информации.

Это означает, что вам не нужно возвращаться и изменять весь свой старый код, потому что вам никогда не придется беспокоиться о перекрытии с другими атрибутами, если вы используете префикс «data-». Однако, если вам нужно хранить более сложные типы данных, чем строки, используйте $.data.

1 голос
/ 26 августа 2009

Я думаю, что вы ничего не пропустите, но хранение данных об атрибутах dom elements - это всегда плохая практика, поэтому я думаю, что вам следует использовать функцию $ .data.

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