пятница, 25 апреля 2008 г.

Технология Ajax

Используемая в Google maps, Gmail и местами в Flickr (программе для публикации фотографий), технология с именем Ajax привлекает все большее внимание, особенно последние несколько месяцев. Сначала мы не совсем понимали, что это такое на самом деле, хотя и были совершенно уверены, что это не средство для мытья посуды и не голландская футбольная команда. Мы также знали, что сайты, где используется ЭТО, весьма круты и думали, что так можно сказать и в отношении Ajax. Теперь мы знаем о нем немного больше, и, откровенно говоря, мы впечатлены.

Термин Ajax был придуман web-разработчиком с большим стажем Джесси Джеймсом Гарреттом (Jessy James Garrett), чье фото украшает эту страницу. «Когда я обсуждал этот подход с клиентами, мне нужен был более короткий термин, чем Asynchronous + JavaScript + CSS + DOM + XMLHttpRequest»,-написал он на сайте компании web-консультантов Adaptive Path, которая использовала данный подход в нескольких проектах, но не является ее непосредственным изобретателем.

На самом деле, Ajax совсем не новая и даже не оригинальная технология. Это просто новый, более искусный способ использования старых возможностей. В частности, Ajax использует зрелые технологии, базирующиеся на открытых стандартах (HTML, CSS, JavaScript/eCMAScript и XML), так что вам потребуются лишь минимальные дополнительные знания. Кроме того, вам не понадобятся никакие новые модули к браузеру. Что действительно ново, так это идеи, стоящие за Ajax. К ним придется привыкнуть — но сам процесс обещает быть весьма интересным, а результаты — действительно впечатляющими.

Обычные web-приложения имеют привычную клиент-серверную структуру, с запросами пользователей (или «вызовами HTTP»), отправляемыми на сервер и почти всегда вызывающими полную перезагрузку страницы. Обычно вся логика сосредоточена на сервере, а в браузере отображаются простые страницы, хотя многие люди пытались найти пути, позволяющие web-страницам манипулировать своей информацией или же получать больше данных без видимой перезагрузки. Кэширование и умелое расположение страниц могут сделать переход «клиентсервер-клиент» более плавным, но задержка или перерыв в работе с пользователем от этого не исчезнет.

Ajax привносит третий уровень потока структурированных данных. Как правило, речь идет об XML, хотя может использоваться и JavaScript Object Notation. Вы можете подумать, что добавление нового уровня только больше замедлит процесс, но в действительности некоторые вещи ускорятся. Этот отдельный уровень позволяет применять логику обработки данных перед тем, как они вернутся на сервер, или даже заставить Ajax выполнять некоторые простые задачи самостоятельно. Это весьма полезно для проверки данных, но Ajax раскрывается во всей своей красе, когда вам нужно быстрое взаимодействие с пользователем.

Поборники паттернов проектирования узнают в такой модели архитектуру MVC (model-view-controller). Паттерны проектирования выделяют типы программных структур, которые присутствуют почти в каждой программе, и позволяют использовать их как проверенные практики без необходимости изобретать колесо всякий раз, когда вы собираетесь куда-то ехать. Основная проблема с web-архитектурами заключается в том, что они имеют тенденцию быть весьма гетерогенными, так что какие-либо проверенные методы бывает трудно выделить и воспроизвести в других сценариях.

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

Модель MVC — один из наиболее известных паттернов, используемых в программировании. Он применяется почти во всех операционных системах с графическим интерфейсом. Его главное преимущество состоит в том, что он позволяет разделить разработку интерфейса и прикладных компонентов, необходимых для его функционирования, тогда как в традиционной web-парадигме эти две части тесно связаны друг с другом.


Преимущества ajax



  • Экономия трафика

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

  • AJAX позволяет несколько снизить нагрузку на сервер. К примеру, в Gmail, когда вы отмечаете прочитанные письма, серверу достаточно внести изменения в базу данных и отправить клиентскому скрипту сообщение об успешном выполнении операции без необходимости повторно создавать страницу и отсылать ее клиенту.
  • Ускорение реакции интерфейса

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