Rambler's Top100
 
 
  23 ноября 2008 года Компьюлента
CIO
Терралаб
Бизнес-журнал
в поле зрения | обзоры и тесты | своя игра | интерактив
Технология, которая перевернёт веб
Автор: Артем Савельев
Опубликовано 16 июня 2005 года

Свято веруя в то, что узкий специалист подобен флюсу, менеджеры по персоналу, описывая вакансии, часто включают в них все известные им аббревиатуры. Соискатели к таким странностям работодателей уже привыкли и автоматически включают в резюме заветный список, начинающийся с C++ и заканчивающийся XML. Однако стараниями маркетологов от программирования скоро этот список может пополниться еще одной аббревиатурой. На престижное место претендует AJAX - технология, которая перевернет веб.

"Перевернет веб" - это почти цитата. В "развитых странах" уже несколько лет обсасывается идея улучшенного веба, веба в версии 2.0. Разумеется, что именно нужно считать обновленным вебом, никто толком не знает. Точнее, знают-то все, но каждый знает свое, и в товарищах никакого согласья нет. Одни говорят, что новый лучший интернет должен быть построен на базе Semantic Web, другие уповают на социальные сети, третьи еще на что-то. С февраля 2005 года уповать можно еще и на AJAX - новый модный термин, знание которого причисляет человека к сонму людей, идущих не то чтобы в ногу со временем, а даже слегка впереди.

AJAX в действии

В отличие от множества "перспективных" подходов AJAX очень нагляден. Сайт, сделанный с помощью AJAX, субъективно работает гораздо быстрее обычного сайта. По крайней мере, он быстрее откликается на любые действия пользователя. Классические и, пожалуй, лучшие примеры использования AJAX - проекты Google Maps и Gmail - и это при том, что программисты Google во время работы над ними ни о каком AJAX и знать не знали. Запросы пользователей обрабатываются очень быстро, потому что использование идеологии AJAX позволяет не перезагружать страничку целиком, а обновлять на ней только те элементы, которые требуют обновления. У того же Gmail с недавнего времени есть обычный HTML-интерфейс для совместимости со старыми браузерами, и любой желающий может убедиться в том, что работает он в несколько раз медленнее, чем классический интерфейс Gmail.

Как это работает

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

  • стандартизированное представление силами XHTML и CSS;
  • динамическое отображение и взаимодействие с пользователем с помощью DOM;
  • обмен и обработка данных в виде XML и XSLT;
  • асинхронные запросы с помощью XMLHttpRequest;
  • JavaScript.

Если в стандартном веб-приложении обработкой всей информации занимается сервер, тогда как браузер отвечает только за взаимодействие с пользователем, передачу запросов и вывод поступившего HTML, то в AJAX-приложении между пользователем и сервером появляется еще один посредник - движок AJAX. Он определяет, какие запросы можно обработать "на месте", а за какими необходимо обращаться на сервер.

Поведение сервера тоже изменилось. Если раньше на каждый запрос сервер выдавал новую страницу, то теперь он отсылает лишь те данные, которые нужны клиенту, а HTML из них прямо в браузере формирует движок AJAX.

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

Понятно, что с такой схемой работы качественная нагрузка на сервер меняется - если раньше запросов было мало, но каждый из них требовал значительных ресурсов (серверу нужно вытащить информацию из БД, сформировать из нее веб-страницу и отдать браузеру), то теперь задача сервера упрощается (формировать веб-страницы не нужно, да и объем передаваемых данных меньше), но запросов обрабатывать приходится больше.

Что из этого получится

AJAX появился совсем недавно. Один из первых реально работающих проектов появился в 2004 году (тот самый Gmail). Саму аббревиатуру изобрели только в начале этого года. Однако все ключевые технологии, необходимые для создания AJAX-приложений, были известны давным-давно.

Пожалуй, было бы интересно поднять подшивки компьютерных изданий того времени. Наверняка только ленивый не пинал Microsoft за игнорирование общепринятых стандартов и продвижение собственных технологий. А прошло несколько лет, и оказалось, что вполне проприетарный XMLHttpRequest может оказаться весьма полезным, а кто его создал и почему - это уже вопрос десятый.

Теоретически AJAX-приложения можно было создавать еще лет семь назад. Все необходимые составляющие к тому времени на рынке уже были. Однако вместо того, чтобы штурмом завоевать веб, AJAX в лучшем случае использовался в интранет-приложениях или для решения специфических подзадач. Представить себе приложение, сопоставимое по уровню сложности с Gmail, в 1998 году невозможно. Собственно, приложение такого уровня вообще было трудно представить до тех пор, пока программисты Google его не написали.

Модель классического веб-приложения.
Так устроено классическое веб-приложение

Среди причин, помешавших AJAX сразу занять заслуженное место под солнцем, можно назвать неготовность индустрии (в 1997 году возможности привычных технологий были еще далеко не исчерпаны, и множество программистов с удовольствием игрались с Perl или PHP, не помышляя о смене архитектуры). Кроме того, заставить один и тот же код работать на всех браузерах в то время было невозможно - сейчас это сделать гораздо проще, хотя до сих пор некоторое шаманство требуется. Ну и наконец, клиентские машинки стали помощнее, и если в 1997 году для многих интернетчиков Javascript был назойливой примочкой, только замедляющей работу, то сегодня вполне можно передавать клиенту код из нескольких тысяч строк - если у пользователя нормальное подключение, то на передачу кода времени уйдет немного, а выполняться он будет без задержек на любой современной машине.

Модель AJAX-приложения
Устройство веб-приложения, использующего идеологию AJAX

Проблемы AJAX

С 1997 года много воды утекло, но до сих пор AJAX нельзя назвать совместимым с разноликим парком клиентских браузеров. На многих браузерах AJAX-приложения просто не работают (хотя последние версии IE, Firefox и даже Opera - начиная с восьмой версии - нормально его поддерживают). Кроме того, сейчас на AJAX возлагаются определенные надежды (по крайней мере, компанией Adaptive Path, которая придумала саму аббревиатуру и усиленно пиарит этот подход к созданию веб-приложений), и очень вероятно, что AJAX их оправдает не в полной мере.

Дело в том, что AJAX - не универсальная технология. Радость "первооткрывателей" сродни восторгу модницы, обнаружившей в сундуке отличное бабушкино платье, в котором очень прикольно появиться на вечеринке. Однако всю жизнь в этом платье не походишь. Даже если отвлечься от совместимости, сама архитектура AJAX предполагает совершенно иной подход к созданию приложений, иной подход к созданию интерфейсов и, очевидно, годится далеко не для всех задач. Почему "очевидно", скептики объяснить не могут, но добавление в архитектуру приложения "посредника" между пользователем и хранилищем данных накладывает определенные, хотя и не совсем ясные пока ограничения. В любом случае, информация об ограничениях такого рода может быть добыта только методом проб и ошибок. Пройдет немного времени, разорится несколько компаний, канет в Лету десяток веб-проектов - и ограничения AJAX получат более или менее видимые очертания.

Есть и еще одно соображение. Добрый десяток лет веб-интерфейсы развивались в соответствии с установкой на ожидание ответа: каждый разработчик знал, что пользователю, нажавшему на любой элемент управления, придется ждать ответа сервера, и как-то старался уменьшить количество таких запросов, чтобы не заставлять пользователя тратить половину своего времени на ожидание загрузки страницы. С AJAX необходимость в таких реверансах пусть и не исчезла совсем, но актуальность, по большому счету, потеряла. Более того, можно попытаться предположить, какое действие пользователь может сделать дальше - и подгрузить на всякий случай необходимые данные. Все эти предположения практически повторяют анализ Роберта Морриса из IBM, который еще три года назад заявил, что важнейшие инновации в программном обеспечении лежат не в технологиях, а в изменениях пользовательского интерфейса.

С AJAX проблема заключается в том, что писать такие приложения - задача трудоемкая. Нужно написать и отладить на JavaScript движок из десяти или двадцати тысяч строк кода плюс реализовать серверную часть. Причем копировать удачные решения практически не у кого: по большому счету, несколькими действительно масштабными AJAX-проектами может похвастаться только Google, но у них проекты довольно специфические - Google Suggest (сервис, подсказывающий наиболее популярные запросы), Gmail и Google Maps. Наиболее основательной переработке программисты Google подвергли почтовый интерфейс, тогда как Google Suggest и Google Maps удивляют не столько новизной подхода, сколько качеством реализации. AJAX активно используется в проектах студии 37signals: персональном вики Backpack, средстве управления проектами Basecamp и онлайновом списке задач Ta-da list.

Что это было?

Итак, что же такое AJAX - подход к программированию, технологическое решение или просто очередной маркетинговый термин, о котором через год-два все забудут. Скорее всего, и то, и другое, и третье. Обещанной революции не произойдет, однако в результате мы получим целый класс специфических, но очень эффективных веб-приложений. А когда наиграемся с AJAX, найдем в бабушкином сундуке что-нибудь еще. От чего мы там отказались в девяностых?

- Из журнала "Компьютерра"

ПОСЛЕДНИЕ КОММЕНТАРИИ
 
ТАКЖЕ В РАЗДЕЛЕ
25 января 2007 года
Ищите и обрящете 
15 декабря 2005 года
OpenGL vs. Direct3D 
12 декабря 2005 года
Весь фокус в фокусе 
31 октября 2005 года
Серьёзный кодак 
 
САМОЕ ПОПУЛЯРНОЕ
Специально для России
Неслыханное дело - по заказу российского оператора WiMAX крупнейший производитель WM-коммуникаторов HTC выпускает совершенно новое устройство! Впрочем, на презентации говорили не только об HTC MAX 4G.
Nehalem во всех подробностях
Российская презентация процессоров Intel Core i7, известных под именем Nehalem, состоится 2 декабря. Между тем, Алексей Рогачков из российского представительства Intel готов ответить на волнующие вас вопросы уже сегодня.
Неделя после Fallout
Продажи новой игры из серии Fallout, разработанной студией Bethesda, идут очень неплохо - и это при том, что первый патч принёс игрокам кучу проблем, а японцы, оказалось, лишились части одного из квестов.
Бизнес vs кризис. Как победить в невидимой войне?
Наталья Касперская, генеральный директор компании InfoWatch, завела блог на портале Computerra.ru. В первой записи она рассказывает о росте цены инсайдерской информации во время кризиса, и о том, как избежать ненужных утечек.
/  бумажный номер

Тема номера: Кризис в ИТ Читайте на сайте тему номера "Кризис в ИТ" и другие статьи из журнала "Компьютерра" от 04 ноября 2008 года
  Архив номеров журнала

О проекте | Реклама на сайте | Рассылки сайта | КПК–версия | RSS-трансляция

© ООО «Компьютерра–Онлайн», 1997 — 2008.
При цитировании и использовании любых материалов ссылка на портал «Компьютерра–Онлайн» обязательна (для Интернет–изданий — www.computerra.ru)
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232–22–61, (495) 232–22–63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером «СПАМОРЕЗ»
Трилан — продвижение сайта,
поисковая оптимизация сайта

Сайт работает на сервере DEPO Computers
Rambler's Top100