Почему Аякс не выживет

Знаешь, Гектор, он мне что-то разонравился.
©неизвестный web-разработчик времен троянской войны


Не люблю долгие лирические вступления. Аякс должен умереть. Речь идет вовсе не об античных героях, добивавшихся руки Елены Прекрасной. Сегодня мы поговорим о популярном наборе приемов web-программирования, объединенном под общим названием Asynchronous Javascript and XML. Итак, как появился Аякс? Полагаю, стоит немного разобраться в причинах возникновения и целях использования AJAX, прежде чем делать громкие заявления о смерти популярной технологии. Сейчас мало найдется людей, которые пользуются Интернетом, но не посещали сайты «второго веб-а», а потому расписывать значение аббревиатуры нет необходимости. Сам термин впервые использовал в 2005 году Джесси Джеймс Гарретт в статье «Новый подход к веб-приложениям». В сущности, все составляющие технологии были уже доступны и работали, не было лишь ярлыка, объединяющего их в головах тех, кто эти технологии использовал.

Его формирование было обусловлено необходимостью в двустороннем обмене данными с сервером и динамическом формировании web-страничек. Часто сюда же относят и создание собственных элементов пользовательского интерфейса. Поскольку в HTML такая возможность изначально заложена не была, появился AJAX – костыль, частично возмещающий ее отсутствие. К сожалению, не будучи стандартной возможностью, она реализацией отличается от браузера к браузеру. В данный момент обмен данными с сервером можно реализовать, например, объектом XMLHttpRequest, созданием дочерних фреймов, динамическим созданием скриптов.
Удача AJAX в том, что он появился очень вовремя, а создание нескольких довольно удобных фреймворков позволило технологии быстро
распространиться. Тем не менее, альтернатива ему есть. Это Flash.
Давайте рассмотрим эти подходы.

Недостатки:

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

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

Достоинства:

Экономия трафика
При изменениях страница не перегружается полностью — с сервера закачиваются лишь изменившиеся элементы. В этом Flash как минимум не отстает, предлагая разработчику значительно более развитые сетевые средства.

Уменьшение нагрузки на сервер
Опять таки, Flash не отстает от AJAX, поскольку в данном случае является клиентской стороной подключения. В принципе, серверу абсолютно безразлично, откуда взялся запрос — вбили вы его в командной строке или он был отправлен функцией из супернавороченной JS-библиотеки. Ускорение реакции интерфейса

Хотя это то, чем AJAX гордится и считает своим преимуществом, здесь он уже не может тягаться с Flash, призвание которого — работа с интерактивной графикой (а ведь интерфейс пользователя — это и есть интерактивная графика).

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

Совместимость
Это безоговорочное достоинство флеша. Учитывая повсеместное распространение flash-плеера и стандартную кодировку (UTF-8), вопрос
совместимости можно просто не рассматривать.

Интеграция новых технологий
И здесь флеш снова впереди. Те, кому доводилось сталкиваться с Flash и OpenGL – технологиями, которые, на первый взгляд, далеки друг от друга, — наверняка отметили странное сходство идеологий этих платформ в работе с изображением. Полагаю, что аппаратное ускорение трехмерной графики, появившееся в новых версиях Flash-проигрывателя, было задумано и подготовлено уже давно. Про Alchemy и трансляцию Си во Flash я уже и не говорю. Припоминая появление чипов для аппаратной интерпретации java, посмею сделать прогноз на ближайшие два-три года: нас ждут анонсы ShockwaveFlash-процессоров, непосредственно исполняющих SWF-байткод, а ведущие производители микросхем наверняка уже чешут затылки, думая, зачем это может понадобиться потребителям.

И ведь придумают, ибо новый рынок — это хорошо! Но это станет концом жизни заслуженного костыля. Аякс еще долго будет использоваться и некоторое время даже развиваться. Но если его развивать дальше, делать SVG-пластические операции и наращивать XMLHttpRequest-мускулы, то получится подтормаживающий Flash/Flex, а второй Flash вряд ли кому-нибудь понадобится. Скорее всего, Sun JavaFX и MS SilverLight, как и AJAX уйдут в историю, причем по той же причине.

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

Поляков Александр. Lecosson@mail.ru


Компьютерная газета. Статья была опубликована в номере 31 за 2009 год в рубрике интернет

©1997-2024 Компьютерная газета