Шаг 2.
Библиотека jQuery.
Стратегии, положенные в основу jQuery
На этом шаге мы перечислим основные стратегии, положенные в основу библиотеки jQuery.
Новый всплеск интереса к динамическому HTML привел к возникновению большого числа платформ JavaScript. Одни из них
являются узкоспециализированными инструментами, другие пытаются предложить полный спектр возможностей и анимационных эффектов и
представляют собой комплекты всего, что только может потребоваться. Чтобы обеспечить широкий круг возможностей и остаться при этом
достаточно компактной, библиотека jQuery использует несколько стратегий:
- Использование знаний о CSS. Благодаря тому, что в основу механизма поиска элементов страницы были положены селекторы
CSS, библиотека jQuery унаследовала краткий и понятный способ выражения структуры документа. Для дизайнеров, стремящихся
обеспечить интерактивность своих страниц, библиотека jQuery стала отправной точкой, поскольку знание синтаксиса CSS является
необходимым и обязательным условием профессиональной веб-разработки.
- Поддержка расширений. Во избежание "расползания" функциональных возможностей библиотека jQuery оставляет
реализацию особых случаев за модулями расширения. Порядок создания новых модулей прост и подробно описан в документации, что способствует
разработке разнообразных изобретательных и полезных модулей. Даже многие базовые функциональные возможности библиотеки jQuery
реализованы с использованием механизма расширений и могут удаляться из библиотеки по мере необходимости, что позволяет еще сильнее уменьшать ее размер.
- Абстрактный способ обхода несовместимостей браузеров. Суровая действительность веб-разработки такова, что каждый браузер
имеет свои отклонения от общепринятых стандартов. Значительную часть любого веб-приложения составляет реализация функциональных особенностей
для каждой из платформ. Вследствие невозможности реализовывать некоторые особенности одинаково для всех браузеров, библиотека jQuery
добавляет уровень абстракции, позволяющий унифицировать решение типичных задач, уменьшить объем программного кода и существенно
упростить его.
- Всегда работает с наборами. Когда мы предписываем библиотеке jQuery отыскать все элементы с классом collapsable и скрыть их,
нам не требуется производить обход всех элементов в цикле, потому что методы, такие как .hide(), автоматически работают не с отдельными
объектами, а с их наборами. Благодаря этому приему, называемому неявной итерацией, многие конструкции цикла становятся
ненужными, что приводит к существенному сокращению объема программного кода.
- Позволяет выполнять множество операций в одной строке. Во избежание чрезмерного использования временных переменных или ненужных
повторов библиотека jQuery для основных своих методов использует шаблон программирования, называемый сцеплением.
Благодаря этому результатом большинства операций над объектом является сам объект, готовый к выполнению следующей операции.
Применение этих стратегий позволило сохранить малый объем библиотеки (сжатый файл занимает менее 20 Кбайт) и в то же время обеспечить
компактность специализированного программного кода, использующего эту библиотеку.
Элегантность библиотеки обеспечивается частично архитектурными решениями, а частично эволюционным процессом ее развития, поддерживаемым
энергичным сообществом, возникшим вокруг этого проекта.
Несмотря на значительные усилия, необходимые для разработки столь гибкой и надежной системы, конечный продукт остается бесплатным для
любых видов использования. Этот открытый проект распространяется под двойной лицензией: GNU Public License (как и многие
другие открытые проекты) и MIT License (в целях содействия использованию jQuery в проприетарном программном обеспечении).
На следующем шаге мы рассмотрим краткую хронологию развития проекта jQuery.
Предыдущий шаг
Содержание
Следующий шаг