В наши дни Всемирная паутина представляет собой динамичную среду, и ее пользователи предъявляют высокие требования как к оформлению, так и к функциональности сайтов. Для создания интересных интерактивных сайтов разработчики используют библиотеки JavaScript, такие как jQuery, чтобы автоматизировать решение наиболее типичных задач и упростить решение более сложных. Одной из причин высокой популярности библиотеки jQuery является ее способность помогать при решении весьма широкого круга задач.

На первый взгляд кажется, что сложно выбрать, с чего начать, потому что библиотека jQuery реализует весьма широкие функциональные возможности. Тем не менее она имеет согласованную и симметричную архитектуру; большая часть концепций заимствована из HTML и каскадных таблиц стилей (Cascading Style Sheets, CSS). Архитектура библиотеки быстро осваивается дизайнерами даже с малым опытом программирования, поскольку многие веб-разработчики, как правило, имеют больший опыт работы с указанными технологиями, чем с JavaScript. Так, в первой главе мы напишем действующую программу, использующую jQuery и содержащую всего три строчки кода. В свою очередь опытным программистам будет помогать и концептуальная целостность библиотеки, в чем мы убедимся в последующих более сложных главах.

Библиотека jQuery предоставляет многоцелевой уровень абстракции для решения типичных задач разработки веб-приложений и потому может применяться практически в любых ситуациях. Библиотека имеет расширяемую архитектуру; так как постоянно появляются новые расширения и добавляются новые возможности, в одной книге просто не охватить все функции и допустимые случаи использования jQuery. Однако базовые возможности позволяют решать следующие задачи:

• Доступ к элементам документа. Чтобы выполнить обход дерева объектной модели документа (Document Object Model, DOM) и отыскать определенные фрагменты HTML без применения библиотеки JavaScript, пришлось бы написать уйму строк программного кода. Библиотека jQuery предлагает надежный и эффективный механизм селекторов, который позволяет извлекать требуемые фрагменты документа для последующего анализа и модификации.

• Изменение внешнего вида страницы. Каскадные таблицы стилей (CSS) предлагают мощный механизм определения внешнего вида документа, но он оказывается бесполезным в случае веб-броузеров, не поддерживающих единые стандарты. С помощью jQuery разработчики могут восполнить этот недостаток, опираясь на стандарты, поддерживаемые всеми броузерами. Кроме того, библиотека jQuery позволяет изменять классы или отдельные стилевые свойства, применяемые к фрагменту документа, даже после того, как он будет отображен.

• Изменение содержимого документа. Библиотека jQuery позволяет не только выполнять простые косметические изменения документа, но и дает возможность модифицировать его содержимое. С помощью одного удобного в использовании прикладного программного интерфейса (Application Programming Interface, API) можно изменять текст, вставлять или изменять изображения, переупорядочивать списки и даже полностью изменять и расширять структуру до-кумента HTML.

• Отклик на действия пользователя. Даже самые тщательно разработанные и мощные реализации поведения становятся бесполезными, если отсутствует возможность управления моментом, когда они должны запускаться. Библиотека jQuery предлагает элегантный способ, дающий возможность перехватывать самые разнообразные события, такие как щелчок мышью на ссылке, и не загромождать при этом код разметки HTML обработчиками событий. Кроме того, прикладной интерфейс механизма обработки событий ликвидирует существующие между броузерами противоречия, которые часто вызывают чувство досады у веб-разработчиков.

• Воспроизведение анимационных эффектов в документе. Для эффективного взаимодействия пользователя с документом дизайнер должен обеспечить обратную визуальную связь. Библиотека jQuery содействует решению этой задачи, предоставляя множество анимационных эффектов, таких как растворение и стирание элементов, а также удобные инструментальные средства для реализации новых эффектов.

• Извлечение информации со стороны сервера без полного обновления страницы. Этот шаблон программирования известен как асинхронный JavaScript и XML (Asynchronous JavaScript And XML, AJAX) и помогает веб-разработчикам создавать полнофункциональные и быстро реагирующие сайты. Библиотека jQuery скрывает сложности, связанные с несовместимостью броузеров, позволяя разработчикам сконцентрироваться на реализации функциональности на стороне сервера.

• Упрощение решения типичных задач программирования на JavaScript. В дополнение ко всем возможностям, связанным с документами, библиотека jQuery предоставляет расширения к базовым конструкциям JavaScript, таким как обход массивов в цикле и манипулирование ими.