Я работаю над приложением, передняя часть в основном использует jQuery.В чем разница между использованием атрибутов данных и класса/идентификатора для поведения javascript?
Мы полагаемся на некоторые классифицированные элементы, присутствующие на странице, чтобы мы могли приложить к ним поведение. Например:
$('.block').on('click', clickHandler);
Один из других разработчиков сказал, что мы должны отделить представление от логики (я согласен с). Поскольку классы используются для представления, он предложил использовать атрибуты данных:
$('[data-attribute-name~=value]').on('click', clickHandler);
Однако, я знаю следующее об этом подходе:
- Это значительно меньше производительное, чем селектор класса на основе
- HTML-классы используются для придания семантического значения элементу DOM и, как таковые, не ограничиваются презентационными применениями.
Я не вижу особого упоминания ни при чтении на unobtrusive javascript.
Каковы основные отличия в использовании [data-attribute]
по классам/идентификаторам?
Это строго вопрос производительности/предпочтения?
Идентификаторы также могут использоваться для передачи семантического значения элементу DOM. – Terry
Уникальные идентификаторы всегда являются самым быстрым способом поиска элемента, а затем (как я понимаю) с помощью выбора тегов, выбора класса и выбора произвольных атрибутов. На практике пользователь редко замечает какую-либо разницу, если только страница не является особенно большой. – Blazemonger
Единственным существенным отличием будет производительность при выборе только класса vs по атрибуту data, хотя это не повлияет на современные браузеры достаточно, чтобы иметь значение. –