Похоже, что использование асинхронного JavaScript в сочетании с XML стало последним писком моды на западном побережье США. Мало того, этот язык, также известный как Ajax, становится все более популярным среди Web-программистов благодаря возможности создания удобных и эффективных приложений.

Мода приходит и уходит, но Ajax, по-видимому, надолго останется непременным атрибутом в арсенале Web-разработчиков, используемым как средство для создания броских интерактивных приложений. Во-первых, удобен процесс разработки: он не требует ввода непомерного количества кодов, во-вторых, при использовании Ajax Web-страница не перезагружается полностью в ответ на каждое действие пользователя. Однако, как в случае с любой новой популярной Web-технологией, ИТ-руководителям следует воздержаться от вопросов типа «раз Google использует его, почему бы нам не поступить так же?» и постараться понять, какую пользу Ajax может принести конкретно их компании.

Как Ajax появился на свет

Свободно перемещаемые картинки на сайте Google. Проверка орфографии осуществляется немедленно при вводе текста на Gmail. Просто замечательные функции! Так ведь?! Появление подобных новинок не могло не вызвать интерес у разработчиков интерактивных сервисов различной сложности и, в частности, Internet-магазинов. На примере Google мы видим, что даже без больших денежных затрат можно создавать приложения с очень широким спектром возможностей.

Секрет популярности заключается в удачной комбинации JavaScript и XML: данные в формате XML загружаются в браузер пользователя, а JavaScript обеспечивает возможность быстро манипулировать этими данными. Например, осуществить «на лету» сортировку списка товаров или электронных писем, переместить изображения по экрану, и все это без утомительно долгого обмена данными между сервером и браузером пользователя.

Сама по себе идея была не нова: начиная с 90-х годов, разработчики использовали язык JavaScript для создания эффектных интерфейсов. Но результаты были не достаточно успешными. Дело в том, что большинство пользователей все еще подключалось к Internet с помощью модемного соединения, это делало процесс загрузки основополагающей информации весьма затруднительным. Также оставался нерешенным вопрос о совместимости браузера с компонентами JavaScript. Кроме того, ограниченные ресурсы оперативной памяти компьютеров пользователей могли значительно замедлить работу даже самых простейших приложений.

Со временем JavaScript начал выходить из моды, и на смену ему пришли серверные скрипты. Они были совместимы со всеми браузерами и клиентским ПО, таким как Macromedia?s Flash, которые обеспечивали работу даже самых сложных приложений, пусть даже и с помощью дополнительных программ.

Однако, благодаря усилиям таких компаний, как Google, Yahoo и даже Microsoft, в течение последних 18 месяцев интерес к технологиям JavaScript снова возрос. Еще одним важным событием стало появление короткого, запоминающегося и яркого названия для обозначения комплекса технологий, на основе которых были разработаны многие известные приложения. 18 февраля 2005 года выходит статья одного из основателей консультационной службы AdaptivePath Джесси Джеймса Гаррета «Новый подход к Web-приложениям»(http://www.adaptivepath.com/publications/ essays/archives/000385.php), и сочетание асинхронного JavaScript и XML обретает имя - Ajax.

Почему Ajax стал таким популярным

За словами сразу же последовали дела. Приложения, созданные с помощью Ajax, оказались вполне работоспособными, к тому же их преимущества были очевидны для всех, даже для неспециалистов. Кроме того, сама идея сложных Web-приложений, не требующих инсталляции на компьютер пользователя, хорошо сочеталась с прогнозами развития программного обеспечения. В общем, суть этих прогнозов можно образно представить в виде картины сражения Давида с Голиафом, где Биллу Гейтсу всегда отводилась роль гиганта. Статьи об Ajax и приложениях, разработанных с его помощью, появлялись повсюду, включая такие издания, как The New York Times и BusinessWeek. Если бы вы были, скажем, начинающим бизнесменом и хотели бы привлечь больше клиентов, то хватило бы заявления, что для создания своей продукции вы используете Ajax. А любому соискателю вакантной должности, чтобы сделать свое резюме более привлекательным, можно было попросту написать, что помимо всего прочего он умеет работать с Ajax!

Распространение Ajax также весьма удачно совпало с формированием концепции Web 2.0, в основе которой лежала идея, что Internet может быть платформой для поддержки гибких, легко комбинируемых друг с другом сервисов. Ajax же представлялся вполне перспективным средством для создания подобных программных средств.

Самое главное - не обжечься

Даже те специалисты, которые весьма успешно работают с Ajax, не советуют торопиться с его использованием. Поэтому для начала надо разобраться, что можно и что нельзя сделать с помощью Ajax, и какие навыки потребуются программистам компании для работы с ним.

На сегодняшний день Ajax - наиболее удобная технология для создания дружественных пользовательских интерфейсов. C его помощью вы сможете дополнить свой сайт такими деталями, как всплывающие воздушные шарики с контекстно-зависимой информацией (как, например, на сайте Netflix.com) или самообновляющиеся таблицы данных.

Так, в компании Backcountry, занимающейся розничной продажей спортивного инвентаря, технический директор Дэйв Дженкинс с помощью Ajax усовершенствовал интерфейс ERP-системы. И теперь, если менеджер, оформляющий покупку, некорректно закрывает окно с формой заказа, строка на экране дважды вспыхивает желтым и постепенно исчезает. Простое, но убедительное напоминание о том, что введенные данные могут быть потеряны! По мнению Дженкинса, это значительно лучше, чем обычное сообщение о потере информации. Тем не менее, нужно помнить, что порою создание даже простейших с виду эффектов, не говоря о сложных приложениях на основе Ajax, может потребовать глубоких знаний языка JavaScript.

С другой стороны, повышенный интерес к технологиям Ajax привел к появлению большого количества вспомогательных инструментов, в том числе бесплатных, которые значительно облегчают работу с этим языком. Энди Маккаун, ведущий разработчик международного рекламного агентства Chiat Day (где в настоящее время тестируется Zimbra - свободно распространяемое почтовое приложение, написанное на Ajax), уверяет, что в его компании начали задумываться о возможности применения Ajax еще в 2004 году. Однако в то время было очень мало дополнительных библиотек, облегчающих работу программистов. Разработчики вынуждены были создавать собственный инструментарий. Сейчас ситуация изменилась, Маккаун говорит: «За последние полгода Ajax стал значительно популярнее. Он позволяет создавать Web-приложения как раз такими, какими их хотят видеть люди. И мы должны оправдать их ожидания». Чтобы ускорить работу с Ajax, он рекомендует обратиться на сайт Script.aculo.us. Там можно найти библиотеки и средство разработки Prototype JavaScript. Это хороший пример тех инструментов, которые доступны сейчас специалистам, желающим побыстрее освоить Ajax.

Однако, несмотря на все возможности, работа с Ajax сопряжена с определенными трудностями. В частности, сюрпризы могут ожидать компании, использующие JavaScript для разных браузеров - Internet Explorer, Safari или Firefox, а также работающие с разными платформами - Windows, Unix или Macintosh.

По мнению Сашин Ша, технического руководителя кадрового Internet-агентства SimplyHired, чтобы использовать Ajax, необходимо четко представлять, какие сюрпризы можно ожидать от приложений, созданных на его основе. В особенности если они будут применяться на общедоступных сайтах. Например, пользователи могут использовать браузер, несовместимый с JavaScript, или попросту отключать поддержку JavaScript в целях безопасности. Последнее, правда, можно обойти, сделав так, чтобы вся информация выводилась на экран, например, в текстовом формате, даже если анимация отключена. Однако это значительно усложняет процесс разработки.

Даже истинные приверженцы Ajax считают, что надо быть осторожным при его использовании, по крайней мере, сегодня. «Спустя некоторое время, может быть, я и смогу применять Ajax так, как захочу», - полагает Дженкинс из Backcountry. Поэтому в настоящее время его экспериментальные приложения предназначены в основном для использования внутри компании, где он сможет контролировать пользователей. Например, следить за тем, чтобы на всех машинах использовали один и тот же браузер, а опция поддержки JavaScript была включена.

Дженкинс также говорит, что не обязательно применять все компоненты Ajax одновременно, это иногда облегчает процесс разработки. Например, при разработке системы для планирования и управления предприятием с Web-интерфейсом программисты Backcountry использовали только асинхронный JavaScript, но без XML. Приложение обращается не к XML-файлам, а к базе данных Postgres, коды которой свободно распространяются. Дженкинс говорит: «Я знаю структуру данных, поэтому мне не нужно переводить их в XML». Подобный подход упрощает работу.

Еще один важный аспект использования Ajax - безопасность. Хотя технологии, лежащие в его основе, далеко не новы, не совсем понятно насколько безопасным будет их совместное использование. Прежде всего, Ajax имеет те же уязвимые стороны, что и его отдельные компоненты: JavaScript и XML. Но это далеко не все. Например, пользователь почтовой программы Scalix?s Web Access, по словам продавца, должен аккуратно очищать кэш браузера после каждой сессии, чтобы не допустить вторжение хакеров.

Перспективы Ajax

Какое будущее ожидает Ajax - остается догадываться. Однако можно с полной уверенностью утверждать, что очень скоро для него будут созданы разнообразные инструментарии и средства разработки. В частности, Microsoft в будущем году намеревается выпустить систему под названием Atlas, которая дополнит Ajax элементами Visual Studio и набором инструментов ASP.Net. (Причем, по словам представителей компании, он будет совместим с различными платформами и браузерами.)

Будут ли новые опции способствовать оптимизации работы с Ajax - вопрос времени. Тем не менее, сегодня такие приложения, как почтовые системы Zimbra и Scalix, свидетельствуют в пользу этой технологии. Именно они предвещают наступление эпохи систем корпоративного класса, разработанного на основе Ajax.


Ссылки на ресурсы об Ajax

Перечень ресурсов для начинающих разработчиков на основе Ajax.

Ajax - комплекс технологий, предназначенный непосредственно для разработки приложений и инструментов для Internet, поэтому неудивительно, что именно там можно найти большую часть полезных ресурсов об Ajax. Вот некоторые из них:

http://blog.jjg.net/weblog/2005/02/ajax.html — Первая статья об Ajax, автор Джесси Джеймс Гаррет. http://script.aculo.us/ — Коллекция линков о JavaScript — ссылки на бесплатные библиотеки JavaScript и демоверсии приложений, написанных на Ajax с помощью этих библиотек. http://prototype.conio.net/ — Prototype JavaScript framework — компонент, необходимый для работы с библиотеками с сайта Script.aculo.us. http://absinth.modernmethod.com/sajax/ - Простейший программный пакет для работы с Ajax. Открытый бесплатный ресурс. http://www.asp.net/Default.aspx?tabindex=0&tabid=1 — Демообразцы инструментов Microsoft?s Atlas Ajax. Конечная версия будет выпущена не ранее следующего года, но эта ссылка все же заслуживает внимания. Зайдите на www.asp.net и затем кликните на ярлык Atlas. http://www.backbase.com — Программный Пакет для работы в Ajax. Здесь вы найдете как бесплатные, так и коммерческие версии. http://www.thinkingandmaking.com/entries/63 — На этом сайте описание лучших практик работы в JavaScript.

Christopher Lindquist. Ajax Arrives for the Enterprise. CIO Magazine. February 15, 2006