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

512 Часть IV. Ajax в примерах

еще не оговаривали, что этот метод делает, поэтому теперь самое время это уточнить. Как вы, возможно, догадались, метод i n i t i a l i z e () требуется для поддержки концепции закладки. Реализация этого метода выглядит следующим образом:

initialize: function{)

{

 

var

currentQuery =

document.location.search;

var

qlndex = currentQuery.indexOf('q=');

if

(

qlndex != -1 )

{

 

 

 

this.lookupField.value

=

 

 

currentQuery.substring( qlndex + 2 );

}

 

this.doSearch();

 

 

 

 

 

Ь

 

 

 

 

Метод

i n i t i a l i z e () принимает

текущее положение документа и ищет

в строке запроса параметр q. Если он существует, метод выделяет значение параметра и передает его в поле поиска. Затем он инициирует поиск посредством метода doSearch (). Что и требовалось получить.

12.6.3. Выводы

Остановимся на мгновение и рассмотрим, чего же мы добились. Мы написали вспомогательный класс XSLTHelper, инкапсулирующий все тяжким трудом добытые знания по обеспечению поддержки XSLT в браузере клиента. Мы в полной мере использовали данный вспомогательный класс в компоненте 'живого" поиска. Мы написали простой, но настраиваемый компонент "живого" поиска, принимающий очень мало информации и превращающий Webстраницу пользователя в отзывчивое поисковое животное. При написании компонента мы придерживались классического объектно-ориентированного :тиля, иллюстрирующего простую структуру и разделение ответственности.

Вцелом совсем неплохо для одного дня работы.

12.7.Резюме

3 данной главе мы воспользовались обычной поисковой страницей и добашли в нее функциональные возможности Ajax. Главной особенностью напего поиска является то, что он не запрещает пользователю взаимодейство- !ать с окном во время выполнения обработки запроса на стороне сервера. Это означает, что в браузер можно, например, поместить анимацию. Налише контроля над браузером позволяет выполнять другие действия, так что ш можем быть уверенными, что пользователи приложения знают о том, что ЕОНСК выполняется.

Далее мы реализовали XSLT-обработку, превращающую наш документ i.ML в отформатированный HTML-код, который мы передаем свойству inегнтмь элемента div. Это позволяет отказаться от использования JavaScript ,ля динамической обработки узлов XML и создания большой строки, примеяемой к документу. Вместо этого в вопросе получения документа из XMLода мы можем положиться на XSLT.

Г л а в а 1 2 . Живой " ПОиСК С UCnoilbJUaatiucivi A j u i

v i w

То, что мы использовали анимацию в процессе обработки и XSLT при реализации "живого" поиска, совсем не означает, что эти концепции нельзя применить к другим проектам. Описанные возможности добавляются и к обычным транзакциям с сервером. Пользователи часто говорят, что какой-то процесс требует нескольких минут. Можем ли мы как-то показать подобное сообщение? Например, с помощью свойства innerHTML из данного проекта мы можем легко добавить на страницу сообщение или изображение, указывающее пользователю, что поиск выполняется. Вообще, практически в любом приложении Ajax следует указывать, что затребованное действие выполняется, чтобы пользователь не щелкал повторно на кнопке отправки или обновления.

С помощью XSLT можно задавать стиль сообщений RSS или изменять любой другой описанный в книге проект, используя на стороне клиента вместо циклического прохода DOM XML возможности XSLT.

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

Вэтой главе...

Обработка RSS-лент

Использование Ajax для непосредственного доступа к Web-сайтам

Ajax без сервера

Эффекты перехода

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