Ajax и Rich Client

Как правило, AJAX используется не сам по себе, а вместе с разными javascript-красивостями, которые помогают делать интерфейс не только быстрым, но и удобным.

Плюсы очевидны:

  • AJAX - это уже javascript, почему бы не добавить еще javascript?
  • AJAX не перегружает страницу, значит
    • Не нужно перегружать жирные интерфейсы
    • Не надо запоминать состояние интерфейса для открытия в том же виде после перезагрузки страницы

Посмотрим на некоторые примеры Rich Client.

Rich Client - это..

Rich - переводится как "богатый". Богатый, в первую очередь, инструментами, средствами ввода-вывода.

  • Меню
  • Drag'n'drop
  • Работа с выделением
  • ...

Client - означает, что приложение является клиентом, т.е отделено от сервера.
В нашем случае это означает, что клиент исполняется на браузере и взаимодействует с сервером при помощи технологии AJAX..

Ограничения на Rich Client

На организацию Rich Client в интернет дополнительно накладываются серьезные ограничения.

Сетевые задержки, проблемы связи

Очевидно, они требуют внутренней обработки ошибок коммуникации и лагов. Есть и еще одно, более важное, следствие для интерфейса.

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

В десктоп-приложениях этот принцип соблюдается.

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

Ограниченность ресурсов, ошибки и несовместимость браузеров

JavaScript - далеко не самая производительная платформа. Ее реализации различаются от браузера к браузеру, имеют свои особенности и ошибки.

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

Примеры виджетов

Хотя библиотеки и кушают ресурсы, но предоставляют много готовых графических компонент Rich Client, которые обычно называют "вИджетами" (ударение на первый слог).

Также библиотеки предоставляют "красивости" - анимационные эффекты. Вот, например, несколько примеров с использованием библиотеки ExtJS

Диалоговое окно с табами

Что пожелаете?

Превед!...
... Вот такие дела!


Масштабирование изображения с сохранением пропорций

Двигаем мышой голубую рамку.

Yes/No/Cancel

Модальное окно Yes/No/Cancel.

Дерево(Rich Client) + динамическая подгрузка(AJAX)

Бесконечное дерево

Вы, наверняка уже встречали и другие виджеты, вроде текстового редактора наподобие MS Word, выпадающих менюшек и т.п.

Rich Client + AJAX = быстрый и удобный интерфейс!

AltStyle によって変換されたページ (->オリジナル) /