Cовременный AJAX и инструменты разработки

«Классический подход»

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

Классический подход удобен для разработки, но не использования. Что делает пользователь, пока сервер выполняет свою работу? Правильно, он ждет. И, с выполнением каждой следующей операции, он снова ждёт, и так при смене каждой страницы. Очевидно, что если бы нам пришлось разрабатывать концепцию Веб с нуля, то мы бы избавились от необходимости заставлять пользователя часто ожидать перезагрузки страницы. Если весь интерфейс уже загрузился, почему взаимодействие пользователя с программой должно прерываться, как только программе понадобились некоторые данные с сервера?

«Современный AJAX подход»

Суть методологии Ajax — это свести к минимуму цикл «передачи данных/пауза, ожидания ответа» и постараться сделать общение пользователя с конкретным веб-сайтом как можно ровнее.

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

Добавим следующее: технология AJAX на текущий момент не совсем пригодна для полноценного внедрения в веб-сайт. Почему? перечислим некоторые ограничения:

  • Индексирование. «Пауки» поисковых машин так же не всегда успешно справляются с индексацией таких страниц. В принципе, можно обойти данное ограничение путем создания фиктивных ссылок, но решение далеко не и самых красивых и точных.
  • Ссылки. Это то, что раздражает чаще всего. Представьте страничку, которая отображает список городов с возможностью фильтрации через выбор страны в списке выбора. Многие сайты сейчас делают это через AJAX и подобные технологии, перерисовывая список без изменения адреса странички. То есть вместо выбора страны в параметрах страницы (11) адрес странички остается тем же, а выбор пользователя в списке передается на сервер либо отдельно. Это страшно неудобно для пользователя, т.к. нет возможности в этом случае сохранить в адрес странички с уже сделанным выбором страны. Другой пример: search.live.com. Безусловно, показ всех результатов запроса без разбивки на страницы впечатляет, но вряд ли это удобно.
  • Кнопка «Назад»
  • По данным исследователей, кнопка браузера «Назад» является вторым по популярности средством навигации после перехода по ссылке. То есть, пользователь всегда рассчитывает на возможность вернуться на одну страницу назад. Веб-странички, которые созданы с использованием Аякса, такую возможность не поддерживают, потому что их содержание создается «на лету». Чтобы как-то это исправить, можно запрограммировать соответствующую логику на JavaScript и сделать ссылку «Назад», щелчок на которую позволит пользователю перейти на предыдущую страницу. Второй вариант, более универсальный и чаще всего легче реализуемый, — использовать невидимый IFRAME, который будет накапливать историю переходов.
  • Неопределенное время ответа
  • Время ответа сервера на запрос не определено — может пройти несколько секунд, а может и несколько минут. И пользователь начинает сильно нервничать, грызть ногти и, наконец, закрывает страничку — ведь браузер никак не отображает, что там что-то происходит :). Чтобы не доводить пользователя до невроза, нужно вставить на страничку хотя бы надпись «Идет загрузка». Более сложное решение — использование отклика системы со стороны сервера.
  • Если вас не напугали эти ограничения, продолжим...

RIA! EUREKA!

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

Последнее время все более и более популярными становятся принципы RIA (Rich Interenet Application). Развитие данных принципов уже принесло, а в недалеком будущем скорее всего сделает революцию в области Веб-приложений. О RIA уже много сказано, поэтому лучше один раз увидеть, чем сто раз прочитать, RIA фрейморки впечатляют backbase.com, bindows.net, extjs.com

Все это дает возможность использовать AJAX как платформу для веб-приложений (именно веб-приложений, а не сайтов), интерфейсные возможности которых не будут уступать возможностям обычных «оконных» windows или linux приложений. Это идею сразу же подхватили Интернет-гиганты google и yahoo, которые на данный момент усиленно развивают почтовые клиенты, фотоколлекции, приложения для работы с таблицами, текстовые редакторы и прочие продукты, но уже веб-ориентированно. По мнению эскпертов, именно on-line приложения в ближайшем будущем частично, а может быть и полностью заменят нам любимый набор Office от дядюшки Билли.

AJAX в решениях ABIATEC

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

Система управления сайтом X3M.CMS, является самым ярким примером решения таких задач.

<<Часть 1: Теория Ajax

Автор: технический директор ABIATEC — Бобров Дмитрий 2011 г.

]]>
Abiatec©2006—2012.

Разработка сайта: OДО «Центр информационных технологий Биконсалт»  УНП 190804719


Узнать стоимость создания сайта.

Электронная почта: info@abiatec.com

Abiatec1

Вконтакте Twitter

Офис в Минске:

Республика Беларусь, г. Минск

пер. Чайковского 3-17 (2 этаж)


  • +375 17 287-39-90
  • +375 17 310-1-310
  • +375 29 609-22-22
  • +375 29 669-94-77
  • +375 17 285-70-54
  • Техподдержка:
    +375 29 339-22-22
Офис в Москве:

Российская Федерация, г. Москва

ул. Годовикова, д. 9, стр. 3


Хостинг — hoster.by

]]>