1 2005 года
Что такое Ajax и для чего он хорош
Ajax - это не технология сама по себе, а термин, относящийся к использованию нескольких технологий вместе.
Традиционные веб-приложения, по существу, подают заполненные пользователями формы на веб-сервер. Веб-сервер реагирует на запрос, высылая на браузер пользователя код новой веб-страницы. Поскольку сервер должен подавать новую страницу при каждом запросе, приложения работают медленнее и более нескладно, чем их "родные", "десктопные" аналоги.

Фото любезно предоставил: Йеспер Нур
Приложения на основе Ajax, с другой стороны, могут отсылать на веб-сервер запросы, извлекающие только те данные, которые требуются в данный момент, обычно используя SOAP или некоторые другие диалекты веб-сервисов на XML-основе.
На стороне же клиента ответы веб-сервера обрабатываются при помощи языка JavaScript.
Результатом применения подобной техники является более "чуткий" интерфейс, поскольку количество данных, которыми обмениваются веб-браузер и веб-сервер, сильно снижается. Время обработки запросов веб-сервером тоже экономится, поскольку большинство работы проводится на клиентской стороне.
(Источник: Википедия)
Ниже приведена отличная статья Эдди Траверсы, представляющая собой введение в его работу под названием "Упражнения по Ajax, для чего он хорош?", в которой он не только предоставляет отличное введение в это понятие для дилетантов, а еще и глубоко анализирует специфические техники кодирования и соответствующие примеры:
По моему мнению, Ajax - это скорее естественная стадия развития уже существующих техник, чем нечто совершенно новое.
Однако в рамках этого развития, некоторые вещи в следующих ключевых сферах заметно отличаются от того, что было раньше:
- Ajax предоставляет механизм смешивания и сопоставления XML и XHTML.
- Ajax значительно снижает необходимость постоянного извлечения материала с сервера (здесь можно привести в качестве сравнения удаленный iframe-скриптинг).
- Ajax преодолевает некоторые "узкие места" (bottlenecks) с точки зрения скорости обработки данных, жертвами которых стали традиционные веб-разработки. В большинстве случаев сайт на Ajax-основе загрузится быстрее, чем аналогичный традиционный вебсайт.
- Если сайт разработан правильно, Ajax значительно снижает время начальной загрузки.
Перед тем, как продолжить рассказ, следует заметить, что Ajax - это, конечно, не панацея. У этой технологии имеются свои проблемы, которые она должна преодолеть по мере своего созревания. Однако это весьма многообещающая область, в которую стоит быть вовлеченным. И по мере того, как проходит время, она, возможно, окажет большое влияние на наш подход к построению веб-страниц и веб-приложений.
Нужно также ясно представлять себе, что Ajax - это не технология сама по себе, а скорее техника, хорошо сочетающаяся с другими технологиями и техниками. Например, с XML, DHTML, CSS и XHTML.
Фактически, Ajax на самом деле - это DHTML с внедренным в него объектом xmlhttprequest. Удивительно, как один-единственный объект может изменить всю эту область.
В соответствии с нынешним положением вещей на фронте Ajax, мы имеем две почти выкристаллизовавшихся крайности.
На одном конце континуума расположились разработчики, строящие разнообразные виды сложных тегов в JavaScript, которые в большинстве случаев излишни и избыточны.
На другом конце расположились все мелкие примеры, перетекающие из места в место в Сети, и показывающие, как загружать XML в какой-либо документ или производить обработку форм на Ajax-основе.
Хотя оба конца спектра играют определенную роль в развитии Интернета, я не думаю, что приципы Ajax и наилучшие способы их использования не были переданы надлежащим образом.
Ajax сам по себе - это определенная техника, но чтобы эффективно использовать ее, люди должны хорошо ознакомиться со стоящей за ней философией.
Другими словами, важно не само использование этой техники, а скорее принятие другого мышления и подхода к веб-разработке.
До сегодняшнего дня, я несколько раз упоминал термин "Ajax", но не описал центральный объект, делающий Ajax Ajax-ом.
В сердце Ajax содержатся объект xmlhttprequest и его эквивалент от Microsoft - ActiveX.
Именно этот объект делает возможной асинхронную передачу данных.
Если вы не совсем ясно прдеставляете себе, что такое асинхронность, то это, кратко говоря, способность управлять процессами независимо от других процессов. Синхронность, антоним асинхронности, означает, что процессы зависят друг от друга. Чтобы проиллюстрировать эту концепцию, давайте разберем классический сценарий работы с веб-страницей.
Допустим, у нас имеется страница А, и на этой странице расположено несколько элементов, включая пару скриптовых и стилевых тегов. При синхронной пересылке данных, скриптовый тег должен быть интерпретирован (parsed) раньше, чем следующий за ним элемент. Таким образом, следующий элемент зависит от интерпретирования предыдущего скриптового тега. Фактически, мы создаем "бутылочное горлышко" в связи между веб-страницей и веб-браузером. Стилевые теги и ссылочные элементы в заглавной части документа создают тот же самый эффект "бутылочного горлышка". Их нужно интерпретировать один за другим - до обработки других элементов страницы.
После завершения обработки этих элементов, элементы в body-секторе могут использовать параллельные подключения для того, чтобы помочь системе ускорить процесс загрузки. Большинство серверов, например, управляют 2-4 параллельными подключениями между веб-страницей и браузером.
Следовательно, это означает, что от 2 до 4 картинок или других элементов страницы могут загружаться параллельно. Тем не менне, еще до того, как начинается этот процесс, система должна интерпретировать все, что заключено между head-тегами, и это может значительно замедлить загрузку веб-страниц.
Особенно если вы используете множесто тегов CSS или JavaScript.
Практически каждая веб-страница или интернет-блог используют этот метод загрузки. Нетрудно увидеть, почему это может представлять собой проблему при попытке увеличения скорости загрузки страницы.
Методы асинхронной загрузки отличаются от этого сценария, поскольку загружающие процессы управляются независимо друг от друга, и таким образом эффект бутылочного горлышка в значительной мере преодоляется.
Суть этой техники - использовать как можно меньше JavaScript в начальных стадиях загрузки, а затем "затолкать" все теги, имеющие отношение к секции head, включая остальные теги JavaScript или CSS и т. п., в объект xmlhttprequest.
Этот метод использует множественные подключения, а не единственное, как делают большинство традиционных веб-страниц, и таким образом загрузка существенно ускоряется.
Испытываете ли вы какой-либо код на основе Ajax?
Эдди Траверса вводит вас в мир Ajax с помощью полного упражнения по программированию кодировке на основе Ajax (на английском языке). Посмотрите, что это такое...
Об авторе:
Эдди Траверса занимается веб-разработками более 10 лет. Он написал разные статьи о JavaScript и DHTML, и содержит сайт ресурсов для разработчиков на http://www.dhtmlnirvana.com/
[ читать дальше ]
Исходная статья: What Is Ajax And What Is It Good For
изначально опубликована Робином Гудом 1 2005 года
URL этой статьи:
http://www.masternewmedia.org/ru/interface_design_technologies/Ajax/what_is_Ajax_and_what_is_Ajax_good_for_20051101.htm
Опубликовал Alessandro Azzurro ? 1 2005 года
Обновил а 21 2006 года
Комментарии читателей
Комментарии
Пинги и трэкбек-цитаты из других блогов
Трэкбек-ссылка для этой статьи:
http://www.masternewmedia.org/cgi-bin/mt-tb.pl/3706
Понимание приходит из исследования |
||

Эта работа лицензирована с помощью лицензии Creative Commons.
