Learning JavaScript Design Patterns / Шаблоны проектирования JavaScript: Что такое шаблон - Вы уже используете их
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Для понимания какую пользу шаблоны могут иметь, давайте посмотрим простой пример как библиотека JQuery решает пробоему выбора елементов SqrTT 19.11.13 в 10:46 Чтобы было понятнее насколько полезными могут быть шаблоны, давайте рассмотрим в качестве примера, то как jQuery выборки элементов по селектору. turkeevm 19.01.14 в 18:05 |
|
|
Представте себе, что у вас есть скрипт который с каждом DOM елементе с класом "foo" на странице увеличивает счетчик. Который запрос коллекции елементов наиболее эффективен? Ну, собственно есть несколько разных путей решения: SqrTT 19.11.13 в 12:49 Представьте себе, что у нас есть скрипт, который для каждого элемента DOM с классом foo найденного на странице увеличивает некий счетчик. Какой способ запросить элементы самый эффективный? Ну, есть несколько подходов к вопросу: turkeevm 19.01.14 в 18:08 |
||
|
Выбрать все элементы на странице и сохранить ссылки на них. Далее фильтровать полученую коллекцию используя регулярое выражение(или другой способ) чтоб сохранить только елементы с класом "foo". SqrTT 19.11.13 в 13:13 |
||
|
Разработчки, которые пользуются jQuery не волнуются об данной проблеме т.к. к счастю она абстрагированая с помощю шаблона Фасад. Далее мы более детально расмотрим как шаблон обеспечивает набор абстрактных интерфейсов (таких как $el.css(), $el.animate()) и прячет за собой более сложный код. Как мы видели, это означает экономию времени на беспокойстве о деталях на уровне реализации. SqrTT 19.11.13 в 14:14 |
||
|
За кулисами библиотека просто выбирает наиболе оптимальный подход для выбора елементов в зависимости от поддержки вашего текущего браузера и мы просто используем уровень абстракции. SqrTT 19.11.13 в 14:22 |
||
|
Вероятно многие знакомы с селекторами jQuery $("selector"). Это значительно легче использования выборки HTML елементов на странице в сравнении с ручным выбором варианта с getElementById(), getElementsByClassName(), getElementByTagName() и так далее. SqrTT 19.11.13 в 14:35 |
||
|
Хотя мы знаем что querySelectorAll() стремится решить данную задачу, но сравните усилия использованные в случае с jQuery интерфейсом Фасад и выбором оптимального пути самим. Они не сравнимы! Использование шаблонов может иметь реальную ценность. SqrTT 19.11.13 в 14:50 |
||
|
В книге мы рассмотрим этот и другие шаблоны проектирования позднее. SqrTT 19.11.13 в 14:52 |
