Информационные технологии и средства разработки в последние годы стремительно развиваются. Для работы Интернета и веб-сайтов программисты начинают использовать разнообразные запросы, библиотеки, а также фреймворки и команды. Популярным элементом веб-разработки стал the AJAX. Эта технология имеет ряд преимуществ и недостатков. С ними предстоит познакомиться далее.
Представленная ниже информация рассчитана на широкую публику. Она подойдет для изучения как программистами-новичками, так и уже более опытными специалистами. Далее будет рассказано не только о the AJAX, но и об использовании jQuery для применения изучаемой технологии.
Синхронные запросы
При работе в Интернете на сервер начинают поступать запросы, а затем клиенту отправляются те или иные ответы. Существуют различные способы функционирования соответствующих «команд». Самый простой вариант – синхронный запрос. Он еще называется «обычный».
Такие «команды» работают по следующим принципам:
- Пользователь заполняет электронную форму для обратной связи и нажимает на кнопку «Отправить».
- Браузер распознает нажатие и понимает, что кнопке требуется отправить запрос на серверную сторону. Он пакует «команду» и отправляет ее в нужное место.
- Серверная сторона получает запрос, а затем обрабатывает ее и выдает в качестве ответа новую веб-страницу.
- Браузер получает ответ от сервера, после чего загружает веб-сайт с нуля. На ней будут располагаться все необходимые клиенту данные, но ощущение «вспышки» присутствует: сначала пользователь находился на одной странице, в какой-то момент экран побелел, а при «восстановлении» изображения человек оказался на новой страничке.
Синхронность в соответствующей ситуации выражается в том, что все данные массово (кучей) отправляются на серверную сторону. После этого вся страница так же «массово» возвращается клиенту.
По такому принципу работают формы обратной связи: пользователь кликает по кнопке, а браузер, чтобы показать новую информацию, начинает загружать новую страницу. Это всего лишь один из способов функционирования запросов в клиент-серверных моделях.
Асинхронные запросы
Изучая the AJAX, каждый программист будет иметь дело с асинхронными «командами». Они функционируют чуть иначе. Вместо того, чтобы синхронно загружать новую информацию с новой страницей запрос приведет к запросу у сервера только части данных – недостающего «блока». После этого система добавит их на страницу и покажет пользователю. Сайт в процессе выполнения необходимых манипуляций перезагружаться не будет.
На примере с электронной формой асинхронный запрос функционирует так:
- Клиент нажимает в электронной форме по кнопке «Отправить».
- На стороне браузера запускается специальный скрипт, заранее привязанный к кнопке.
- Скрипт отправляет запрос на серверную сторону и в качестве ответа получает новую порцию данных от сервера. Страница перезагружаться не будет. Все манипуляции осуществляются внутри скрипта.
- Скрипт просматривает ответ от серверной стороны. После этого он внедряет новые данные в старую страницу в Интернете.
Сайт при асинхронных запросах не перезагружается, посетитель остается там же, где и был. Только на веб-портале появляются обновленные данные.
В качестве примеров асинхронных запросов можно выделить: получение списка новых сообщений в веб-чате без его обновления, добавление новых товаров в интернет-магазин, сворачивание видео-хостингом видео в небольшой плеер в углу сайта, демонстрацию статуса заказа в службе доставки в режиме реального времени.
The AJAX – это…
The AJAX (Asynchronous JavaScript and XML или «асинхронных JavaScript и XML») – это подход к выстраиванию интерактивных пользовательских интерфейсов веб-приложений. Его работа базируется на «фоновом» информационном обмене браузера и веб-серверов. В конечном итоге при обновлении данных открытый сайт перезагружаться полностью не будет. Это приводит к более быстрой и удобной работе веб-приложений.
The AJAX – это технология отправки запросов. Он используется в большинстве современных веб-приложений. На самом деле рассматриваемый элемент не является полноценной технологией. Это термин, указывающий на процесс асинхронного обмена данными с веб-сервером при помощи JavaScript без обновления сайта.
Соответствующая технология использует встроенный в браузер объект XMLHttpRequest (XHR) для асинхронной отправки и получения данных на веб-сервер и с него в фоновом режиме. Страница, с которой работает пользователь, блокироваться не будет. На работу со стороны клиента соответствующие манипуляции тоже не оказывают влияние.
Устройство the AJAX
The AJAX request в качестве основы использует XHR. Этот объект отвечает за все асинхронные запросы. Раньше он поддерживался не всеми браузерами, поэтому приходилось отдельно подключать библиотеку jQuery. В ней предусматривается соответствующий объект. О работе и особенностях этой библиотеки будет рассказано позже. На данный момент почти все браузеры научились поддерживать XHR напрямую, поэтому в подключении jQuery не всегда есть необходимость.
Принцип работы и устройство the AJAX request базируется на DOM-объектах страниц в браузерах:
- Когда Интернет-обозреватель получает исходный код страницы, он строит множество виртуальных элементов на основе этого самого кода: абзацы, ссылки, картинки, заголовки и так далее. Операции осуществляются внутри браузера.
- К каждому компоненту модели допустимо отдельное обращение для изменения его свойств или содержимого. Пример – при помощи JavaScript (JS) получится поменять текст в заголовке (headers) или перекрасить фон страницы, не перезагружая весь сайт.
- JS делает запросы на серверную сторону и получает ответ, после чего выполняет необходимые действия со страницей. Они будут меняться в зависимости от имеющейся программы. Отправка запроса и получение ответа напоминает чтение и запись переменных.
Все это поможет понять устройство the AJAX, а также особенности этой технологии. Она имеет как преимущества, так и недостатки. Знать о них необходимо каждому, кто занимается Интернет-программированием. Не во всех онлайн-проектах рассматриваемая технология является целесообразной.
Преимущества и недостатки технологии
У the AJAX request предусматриваются следующие преимущества:
- Небольшой трафик. Браузер будет получать с сервера не всю страницу целиком, а только «недостающую» информацию. Каждый раз при посещении онлайн-портала загружается лишь определенный блок данных. Это значительно экономит трафик.
- Снижение общей нагрузки на сервер. Если сайт формирует все страницы «на лету» (пример – через PHP), можно один раз загрузить их «стандартные» части (шапка, подвал, меню), а остальные цифровые материалы подгружать по мере необходимости. Чем меньше данных в сформированном запросе, тем быстрее окажется ответ от сервера и информационной базы.
- Удобство для пользователей и быстрый интерфейс. Моментальное обновление данных на одном и том же сайте – это намного удобнее, чем постоянная перезагрузка веб-портала. Также результаты обработки the AJAX request можно отображать сразу.
Несмотря на то, что изучаемая технология активно применяется в разработке, она все равно имеет ряд недостатков. К ним можно отнести следующие моменты:
- Необходимость включать JS. Если JavaScript выключить в браузере, ничего работать не будет – информация просто не придет с сервера. Это приведет к тому, что интерактивная страница не получится.
- Незаметность the AJAX-контента для поисковых движков. Если содержимое сайта базируется на the AJAX request, поисковые роботы не смогут заметить их. Смысл заключается в том, что поисковики просматривают исходный код, а не информацию, поступающую от сервера. Поисковая оптимизация подобных веб-порталов доставляет немало проблем SEO-специалистам.
- Усложнение проекта. Работа с the AJAX и асинхронными запросами требует определенных знаний и навыков у разработчиков. Это необходимо для предотвращения различных нештатных ситуаций и заблаговременной обработки отправляемых «команд». Также придется подумать над бэкендом – поведением серверной части проекта в ответ на те или иные запросы.
Также стоит обратить внимание на ошибки при нестабильной связи. Это еще один недостаток the AJAX. Если Интернет работает нестабильно (с перебоями и частыми разрывами соединения), рассматриваемая технология может не дождаться ответа от серверной стороны проекта или не сможет отправить свою «команду». В конечном итоге логика работы страницы может оказаться нарушенной. Придется перезагружать сайт полностью, а затем начинать работу с нуля.
Альтернативы
Изучая the AJAX, необходимо обратить внимание на альтернативные подходы к асинхронной работе с клиент-серверной моделью:
- Java-апплеты и JavaFX;
- технология Silverlight от компании Microsoft;
- протокол WebSocket.
Перечисленные альтернативы располагаются в хронологическом порядке. Также аналогом the AJAX стал Adobe Flash. Ранее этот стек технологий назывался Macromedia Flash. Он составляет технологическую основу RIA (Rich Internet Applications), которая активно продвигается компанией Macromedia (ее поглотила организация Adobe). Flash – это технология, которая подходит для различного применения – от игр до сложных интерфейсов в веб-приложениях. Предусматривает реализацию мощных средств поддержки графики, которых нет в базовых средствах the AJAX (данный недостаток перекрывается реализацией в рамках стандарта HTML5 и CSS3).
jQuery – это…
The jQuery – это библиотека JavaScript. Она представляет собой набор инструментов, полезных в веб-программировании. С помощью этой библиотеки разработчик сможет обращаться к различным элементам Интернет-страницы и управлять ее содержимым. Пример – корректировка сайта в зависимости от пользовательских настроек и действий.
Изначально jQuery создавалась для того, чтобы сделать JS более гибким и удобным языком разработки для веб-программирования и создания сайтов. Библиотека является кроссплатформенной и кроссбраузерной. Это значит, что ей допустимо пользоваться в любых операционных системах, а написанный с ее помощью код поддерживается всеми Интернет-обозревателями. Исключение – старые браузеры вроде Internet Explorer 6, но таким программным обеспечением почти не пользуются.
The jQuery работает под лицензией MIT: бесплатно и открыто. Существуют похожие проекты – jQuery UI и jQuery Mobile. Это дополнительные расширения для основной библиотеки, предназначенные для формирования сложных интерфейсов и мобильной разработки соответственно. Раньше the AJAX требовал установки jQuery в некоторых браузерах для асинхронной работы запросов. Сейчас она практически не используется, но знать азы работы с этой библиотекой все равно должен каждый веб-разработчик.
Для чего необходима библиотека
В программировании jQuery используется фронтенд-разработчиками, которые занимаются созданием видимой части сайтов и веб-программ. Часто это программисты, поддерживающие legacy-код в длительных и достаточно сложных проектах.
jQuery можно использовать:
- для обеспечения быстрой связи JS с HTML-элементами;
- при работе с селекторами CSS;
- для навигации по DOM-дереву: изменения, обхода, поиска различных элементов;
- при работе с событиями на веб-сайте и дальнейшими реакциями на них;
- для реализации the AJAX – технологии фонового обмена данными сайта с сервером;
- в процессе создания анимации и визуальных эффектов на веб-странице.
Далее акцент будет сделан на работу jQuery с асинхронными запросами. Но перед тем как использовать эту библиотеку, необходимо выяснить, насколько она актуальна и какие особенности предусматривает.
Актуальность
Сейчас jQuery – это библиотека, которая вытеснена другими известными фреймворками и библиотеками для JavaScript. Из-за этого упомянутый инструмент является частично устаревшим. В новых проектах он встречается крайне редко. Связано это с тем, что новые фреймворки и обновления JS реализовали практически те же функциональные возможности, что поддерживаются в jQuery.
Но эта библиотека оставалась актуальной на протяжении многих лет, начиная с момента появления. С помощью jQuery написано множество проектов, поддерживаемых по сей день. Это не позволяет инструменту устареть окончательно. Для начинающего разработчика представление о jQuery – это важный этап развития. Рано или поздно каждый программист столкнется с соответствующей библиотекой, особенно если работать с проектами, имеющими долгую историю.
Особенности библиотеки
The AJAX и jQuery – два инструмента, которые могут использоваться в веб-разработке совместно. Раньше такое сочетание технологий было обязательным, но сейчас это огромная редкость. Несмотря на это, jQuery все равно используется разработчиками. Перед тем как ее применять в своем веб-проекте, каждый программист должен знать преимущества и недостатки библиотеки.
К плюсам jQuery можно отнести:
- Простоту. Освоить этот инструмент достаточно легко, у него низкий порог вхождения. Новичок сможет разобраться с jQuery достаточно быстро. Для этого поддерживается хорошая документация, а также множество сторонних обучающих материалов. Некоторые из них – на русском языке.
- Понятный код. Написанные коды при помощи рассматриваемой библиотеки легко читать – у него понятный синтаксис.
- Компактность. В сжатом виде библиотека весит всего 30 Кб, а коды, написанные с ее помощью, получатся небольшими и короткими.
- Широкое распространение. Несмотря на то, что jQuery является устаревшим инструментом, он все равно популярен и распространен. С его помощью написано множество проектов, которые работают до сих пор. Сюда можно отнести CMS и системы для быстрого создания сайтов.
- Расширяемость. Библиотека предусматривает возможность подключения плагинов и небольшого ядра по мере необходимости. Это позволяет экономить не только пространство, но и ресурсы. Если программисту не требуется решение специфических задач, то и функции для этого не нужны. Именно поэтому по умолчанию они не включены в jQuery. Вместо этого недостающие компоненты разрешено скачать и установить для конкретного проекта.
Недостатки у библиотеки тоже есть. Их необходимо помнить не только тем, кто планирует реализовать технологию AJAX в своем проекте, но и остальным веб-разработчикам:
- Огромное количество legacy-кода. Основная масса проектов на jQuery – это старый код. Он подразумевает более сложную поддержку. В таких проектах имеются решениях, которые уже давно не используются и утратили свою актуальность. Документация по такому исходному коду может быть хуже, чем по современному.
- Избыточность. Раньше JS имел меньшую функциональность, чем сейчас. Тогда jQuery помогала выполнять действия, с которыми не мог справиться нативный язык. Сейчас JavaScript стал гибким и функциональным. Именно поэтому возможности рассматриваемой библиотеки избыточны. Аналогичные операции при разработке получится выполнить за счет нативного языка или его современных фреймворков.
- Снижение производительности. Сайты, написанные при помощи jQuery, могут загружаться на порядок дольше, а сам код – работать медленнее, чем при использовании нативных возможностей JS. Это не всегда становится проблемой, но соответствующий недостаток придется принять во внимание, особенно когда без упомянутой библиотеки можно легко обойтись.
Перед тем как использовать the AJAX и инструмент JS, необходимо запомнить, где еще может применяться jQuery. Это поможет понять, насколько целесообразно изучение соответствующего компонента разработки.
Как использовать
При помощи упомянутой библиотеки можно:
- Осуществлять поиск элементов. HTML-элементы – это кнопки, картинки, ссылки, текстовые блоки и прочее содержимое веб-сайта. С помощью селекторов их допустимо искать на сайте. Библиотека JS умеет обнаруживать соответствующие компоненты в пределах страницы.
- Корректировать элементы. Поиск элементов на сайте сам по себе ничего не дает. Он обычно требуется для дальнейшего изменения сущностей. Пример – заменить данные в текстовом блоке или сделать невидимой неактуальную подсказку.
- Реагировать на различные события.
- Фоново загружать контент. Библиотека jQuery предусматривает работу с the AJAX. В ней соответствующая технология реализована легко и удобно. Данный прием позволит сделать сайт более «отзывчивым» и комфортным для пользователей. Простым примером the AJAX может послужить автоматическая подгрузка товаров при пролистывании каталога Интернет-магазина. Там можно применить упомянутую библиотеку.
Также jQuery может использоваться для создания эффектов и анимации. Раньше визуализация требовала огромного количества ресурсов и навыков, поэтому соответствующий инструмент сделал разработку более простой и быстрой.
Подключение и синтаксис
The AJAX – это технология асинхронной работы запросов. Упростить написание соответствующего кода в клиент-серверных моделях можно при помощи ранее изученной библиотеки JS. Далее предстоит познакомиться с ее применением совместно с AJAX.
Для начала предстоит подключить к проекту jQuery-библиотеку. Для этого в head секции сайта необходимо написать такой код:
<script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js»></script>
У создания AJAX запросов на «чистом» JavaScript существуют определенные недостатки. А именно:
- Получение громоздкого кода. Это касается даже самого простого AJAX запроса. Понимать написанное в веб-коде будет проблематично, если не ознакомиться с дополнительными характерными справочными материалами.
- Необходимость добавления дополнительных строчек кода для поддержки старых версий браузеров.
The AJAX, созданный при помощи jQuery, занимает всего одну строчку кода. Он будет уже оптимизирован для дальнейшего использования как старыми, так и новыми версиями Интернет-обозревателей. Соответствующий подход значительно упрощает разработку программного обеспечения.
Синтаксическая форма записи у соответствующей конструкции будет следующей:
$(«селектор»).load(url, данные, функция)
Здесь:
- Селектор – необходим для выбора компонента, в котором отобразится результат AJAX «команды».
- URL – адрес, на который отправляется the AJAX «команда»;
- Данные – необязательный параметр. Он отвечает за информацию, которая передается совместно с выполняемым запросом.
- Функция – еще один необязательный параметр. Указывает на функцию, которая будет вызвана после выполнения сформированного запроса.
Это простейшая форма записи AJAX-«команды» с применением jQ. С этой технологией работают различные команды библиотеки. Помнить о них предстоит даже начинающему веб-разработчику.
Команды для работы с AJAX
Вот функции, которые работают с the AJAX в изученной ранее библиотеке JavaScript:
- $.ajax() – детальная настройка параметров the AJAX. Данная функция заложена в основе всех характерных запросов.
- $.ajaxSetup() – настройки «по умолчанию».
- $.get – отправка GET-запроса на серверную сторону.
- $.post – отправка POST-запроса на сервер.
- $().load – подгрузка ответа от сервера внутрь заданного компонента.
- $.getJSON() – реализует запрос GET для JSON данных с серверной стороны проекта.
- $.getScript() – GET-запрос JS-данных с сервера с последующим выполнением.
А вот дополнительные функции, которыми можно пользоваться при применении the AJAX:
- $.param() – используется для преобразования объекта, массива или массива объектов в строку, которую можно передавать при помощи URL;
- $().serialize() – преобразовывает данные формы в строку, которую можно передавать через URL;
- $().serializeArray() – отвечает за преобразование данных формы в информационный массив объектов, включающий в себя данные элементов этой формы.
Этих функций будет достаточно для полноценной работы с веб-сервером и различными онлайн-приложениями. Но также необходимо помнить о возможных настройках параметров $.Ajax().
Параметры the Ajax JQ
Эта таблица поможет лучше понять, какие параметры поддерживает $.Ajax():
Чтобы полноценно пользоваться the AJAX JQ, необходимо также запомнить функцию $.Ajax(). Она заложена в основе большинства остальных команд.
Функция $.Ajax()
Для применения в проекте the AJAX необязательно пользоваться функцией $.Ajax, но именно она заложена в основе остальных команд. А еще – с помощью соответствующей записи получится раскрыть возможные параметры для других функций.
Синтаксическая форма записи может иметь две формы представления:
- jQuery.ajax(url [settings]) – запись для JQ, начиная с версии 1.5;
- jQuery.ajax([settings]) – запись, которая используется для JQ, начиная с версии 1.0.
Здесь:
- URL – это URL-адрес, на который отправляется запрос.
- Settings – набор параметров типа «ключ:значение». С их помощью удастся осуществить настройку the AJAX. Все параметры опциональный. Настройки по умолчанию устанавливаются при помощи $.ajaxSetup().
Также существуют сопровождающие функции. Они предоставляют возможность выполнения различных кодов в зависимости от состояния the AJAX-«команд». Сюда можно отнести:
- ajax.Send() – выполнение переданного кода во время отправки запроса;
- ajax.Complete() – выполнение кода после завершения запроса;
- ajax.Success() – инициирует реализацию кода при успешном завершении запроса;
- ajax.Error() – выполнит переданный в функцию код при завершении запроса с ошибкой.
А вот примеры the AJAX в сочетании с JQ:
Это вариант установки глобальных параметров через ajax.Setup. А вот реализация функции .get():
Для .post используется следующая форма записи:
Чтобы лучше понимать реализацию асинхронной работы запросов, а также обучиться работе с jQuery и изученной технологией, рекомендуется завершить дистанционные онлайн-курсы. На них научат программировать с нуля, а также работать с the AJAX и другими инструментами разработки на любом выбранном языке программирования. В конце обучения выдается электронный сертификат, с помощью которого получится подтвердить приобретенные знания.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!