Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ajax_v_deystvii.pdf
Скачиваний:
34
Добавлен:
05.03.2016
Размер:
5.83 Mб
Скачать

54 Часть I. Новый взгляд на Web-приложение

работа будет происходить по тому же сценарию, что и создание обычных программ для настольных систем.

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

1.3. Применение богатых клиентов Ajax

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

1.3.1. Системы, созданные с использованием Ajax

Наибольший вклад в формирование современного представления об Ajaxприложениях внесла компания Google. (Она использовала данную технологию еще до того, как та получила имя Ajax.) Бета-версия службы GMail стала доступна в начале 2004 года. Эта служба привлекла внимание пользователей не только размерами предоставляемого им почтового ящика, но и интерфейсом, который позволял одновременно открывать несколько сообщений и автоматически обновлял список корреспонденции, даже если пользователь подготавливал в это время новое сообщение. Это был существенный шаг вперед по сравнению с обычными почтовыми системами, предлагаемыми большинством провайдеров. Сравнивая GMail с Web-интерфейсами корпоративных почтовых серверов, например Microsoft Outlook и Lotus Notes, нетрудно заметить, что GMail обеспечивает большинство функций, не прибегая к помощи тяжеловесных и ненадежных элементов ActiveX или Java-аплетов. В результате служба доступна не только для корпоративных пользователей, вооруженных специально настроенными машинами, но и для большинства обычных систем.

За GMail последовали другие интерактивные службы, например, Google Suggest, поисковый сервер которой автоматически предлагает завершение фразы, указываемой в составе запроса, и Google Maps — интерактивная масштабируемая карта, посредством которой определяется расположение ресурса. Начали эксперименты с данной технологией и другие компании. В качестве примера можно привести интерактивную систему Flickr, которая в настоящее время является составной частью Yahoo!.

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

Глава 1. Каким должен быть Web-интерфейс 55

рьгх мы поговорим в главе 3, а в приложении В обсудим текущее состояние дел в этой области.

Наличие приложений, созданных на базе Ajax, свидетельствует о том, что новый подход получает признание разработчиков. Если отдельные программисты иногда используют новую технологию лишь для того, чтобы ознакомиться с ней, то такие компании, как Google и Yahoo!, прибегают к ней только в том случае, если она сулит выигрыш в конкурентной борьбе. Мы уже обсуждали преимущества Ajax, которые следуют из теоретических рассуждений. В следующем разделе мы разберем Google Maps и выясним, как теоретические предпосылки реализуются на практике.

1.3.2. Google Maps

Google Maps объединяет в себе черты средств просмотра и поискового сервера. Первоначально данная служба поддерживала только карту США (рис. 1.15), но впоследствии набор доступных регионов был расширен1. Запрос к карте формируется в текстовом формате; допускается детализация до конкретной улицы и даже до таких заведений, как гостиницы или ресторана (рис. 1.16).

Поисковые средства функционируют как классическое Web-приложение, обновляя всю страницу, но сама карта поддерживается с использованием Ajax. После щелчка на ссылке, соответствующей гостинице, отображается подсказка; не исключено, что карта немного сдвинется в окне, чтобы наилучшим образом разместить отображаемый текст. Прокрутка карты — одна из самых интересных особенностей Google Maps. Пользователь может перетаскивать всю карту с помощью мыши. Сама карта представляет собой мозаику, составленную из маленьких изображений, и если при прокрутке должен отобразиться новый фрагмент, он подгружается в асинхронном режиме. В связи с этим при прокрутке заметна задержка: сначала отображается белая пустая область, которая постепенно заполняется по мере копирования очередного фрагмента. Пользователь может продолжать прокрутку, загружая новые изображения. Элементы карты кэшируются браузером и сохраняются в течение сеанса, поэтому возврат к той части карты, которая уже была просмотрена ранее, происходит значительно быстрее.

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

1 В настоящее время уже существует приложение Google Earth, которое охватывает весь земной шар. — Примеч. ред.

56 Часть I. Новый взгляд на Web-приложение

:ile Edit Siew So Bookmarks Iools Help

ф| • '<:ф • $ 4? PjH SL Mtp //maps google com/

j Firefox Help _j Firefox Support . Ping-in FAQ

Maps

-ТГ-Г-— 1 p^

" T -1-

f i t , . J

«

*

Done

Map

) > £ Ш £

Drag the mop with уоиг moose, or double cbck to center.

E x a m p l e s e a r c h e s :

 

Go to a locution

 

 

"kansasoly"

 

trvfr.

"10 market st, san fraadsce*

laaJt

Find e business

 

 

"hotels near

tax*

try it

"рига"

 

try it

Get dh actions

 

 

"jB( to 350 bth. new york. ny" try it

"sertile to 98109"

try it

Take a 0tir »

 

Use our new Satellite feature? Try KavhoU» • Goose's 3D Earth.

Рис. 1.15. На исходной странице Google Maps отображаются масштабируемая карта США и поле ввода ключевых слов, знакомое пользователям поискового сервера Google. Заметьте, что средства масштабирования располагаются в верхней части карты, что позволяет пользователю изменять масштаб, когда карта находится в поле зрения

Карты в Интернете — не новость. Но если мы обратимся к узлу подобного назначения, созданному задолго до появления Ajax, то увидим, что взаимодействие с пользователями реализовано совершенно по другим принципам Карта обычно разделена на фрагменты. Ссылки, управление масштабированием, как правило, расположены за пределами карты либо на обрамлении. После щелчка на одной из таких ссылок обновляется весь экран, в результате чего на той же Web-странице отображаются другие фрагменты карты. Пользователю приходится постоянно отвлекаться от основной задачи. Если он уже имел опыт работы с Google Maps, то, испытав на себе особенности взаимодействия с таким сервером, вряд ли захочет обращаться к нему снова.

Рассмотрим те же задачи с точки зрения программ, расположенных на сервере. Как службы, созданные на базе Ajax, так и службы, созданные оез использования этой инфраструктуры, применяют одинаковые решения. Ь обоих случаях карта представляется как набор простых изображений.

Глава 1. Каким должен быть Web-интерфейс

57

£!e Ed* View So Bookmarks Iools Help

^i т Ц# * mg

 

 

^

c f !

sCl http //maps google com/

Q Firefox Help

Q Firefox Support

U Plug-in FAQ

 

 

 

 

 

Maps

Local Search Directions

 

 

 

 

 

i

'•"'

"

" '

 

 

 

 

 

 

 

p o t e l s

n e a r

 

l a x

M a p s

 

 

 

 

 

 

 

 

 

 

 

C

o

u

r t

y a r d

b y

 

M a r r i o t t :

L

a

x

 

 

 

 

 

 

 

 

 

( 3 1 0 )

 

6 4 9 - 1 4 0 0

 

 

 

 

 

6 1 6 1

W

C e n t u r y

B l v d

 

 

 

L o s

 

A n g e l e s .

C A

9 0 0 4 5

 

 

 

h o t e l p m d c . n a t

 

 

 

 

 

 

 

D i r e c t i o n s : T o

h a r e - P r o m h a r e

 

 

 

 

 

 

 

 

 

 

 

 

 

Map dsta Д2005 NAV1EQ

http jtmaps google com/

•* ©Go О,

Map

Q Pnnt Email m> [ink to this paqa

 

 

 

 

Radisson Lax

 

 

 

 

 

(310) 670 9000 - 0 2 на Е

 

 

 

 

Courtyard by Marriott:

 

 

 

 

T o r r a n c e Plaza

 

 

 

 

 

(310) 533-8000 -0.2 mi E

 

 

 

 

Courtyard bv Marriott: Lax

 

 

 

 

(310)649-1400- 03

m В

 

 

 

 

S h e r a t o n Gateway

 

 

 

 

(310)642-1111 -04 mil

 

 

 

 

Crowne Plaza Los Angeles

 

 

 

 

Airport

 

 

 

 

 

(310) 642-7500-05 ire F

 

 

 

 

Vagabond Inn

 

 

 

 

 

(415) 776-7500- OS nsF

 

 

1 ft

Starwood H o t e l s &

 

 

T

Resorts

 

 

 

{

 

(310) 348-1800 -OVmiE

 

 

 

 

M a n d a r i n Oriental H o t e l

 

 

 

 

G r o u p

 

 

 

 

 

(310) 670-6422 - 0

m F

 

 

^ E m b a s s y Suites

H o t e l

§

 

 

 

 

 

 

Рис. 1.16. Поиск гостиницы с помощью Google Maps. Обратите внимание на традиционное использование технологий DHTML для создания визуальных эффектов и подсказок. Запросы Ajax позволяют сделать процесс поиска более динамичным

Классический Web-сервер по мере прокрутки пользователем карты постоянно обновляет шаблон, в то время как после запуска приложения Google Maps передаются лишь необходимые данные, в частности, изображения, отсутствующие в кэше. (В обоих случаях браузер кэширует изображения, но в классических приложениях содержимое кэша используется лишь для снижения нагрузки на сеть.) Для интерактивных служб, таких как Google, простота использования является основной характеристикой, определяющей, захочет ли пользователь повторно обратиться к ней или предпочтет другой сервер. Другими словами, одним из ключевых показателей является впечатление пользователя от документа. Улучшая интерфейс и придавая ему гибкость, обеспечиваемую Ajax, компания Google заставила своих конкурентов задуматься о качестве их служб. Конечно же, нельзя упускать из виду другие факторы, например качество услуг, но при прочих равных возможностях Ajax может обеспечить существенное преимущество компании, использующей эту технологию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]