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

13.5.2. Pooling

Один из способов узнать, нет ли на сервере каких либо обновлений, применять технологию AJAX, с определенным интервалом времени делать запрос на сервер (рис. 13.5) [15].

Рис. 13.5.  Пример асинхронных запросов в AJAX – short polling

Такой тип взаимодействия называется polling (от англ. poll – тянуть), именно вытягиванием данных и занимается браузер. Преимущества перед полным обновлением страницы очевидны, но есть и недостатки. Главным из них является "холостая работа" – часто браузер делает сотни запросов, а в ответ узнает, что новых данных нет. Именно для решения этой проблемы и появилась технология long polling, позволяющая делать запросы, которые возвращают результат, как только он появляется. Пример взаимодействия показан на рис. 13.6 [15].

Рис. 13.6.  Пример долгих асинхронных запросов – long polling

Эта техника является золотой серединой между простым AJAX и сложным HTTP-streaming. Главным преимуществом является то, что клиент создает всего одно соединение, через которое получает данные от сервера в реальном времени. Главными недостатками можно назвать сложность реализации и несоответствие духу протокола HTTP.

13.6. Ключевые термины

JSON, JavaScript, AJAX, ExtJS, Prototype, jQuery, Comet.

13.7. Краткие итоги

JSON – текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком.

Практическая польза использования JSON открывается при использовании технологии AJAX.

Хотя JSON предназначен для передачи данных в сериализованном виде, его синтаксис соответствует синтаксису JavaScript и это создает ряд проблем безопасности:

  • JavaScript eval();

  • подделка кроссдоменного запроса.

ExtJS – библиотека JavaScript для разработки веб-приложений и пользовательских интерфейсов, изначально задуманная как расширенная версия Yahoo! UI Library, однако, преобразовавшаяся затем в отдельный фреймворк.

ExtJS поддерживает свойства объектно-ориентированного программирования посредством следующих методов:

  • Ext.namespace;

  • Ext.override;

  • Ext.extend и соглашения о параметрах конструкторов;

  • Ext.apply;

  • Ext.applyIf.

Компоненты библиотеки ExtJS можно разделить на несколько групп:

  • Самый нижний слой;

  • Core:

    • ядро;

    • модуль для использования визуальных компонентов;

    • утилиты;

    • поддержка кросс-браузерного Drag&Drop;

    • возможность хранить состояние интерфейса в независимом хранилище;

  • Работа с данными:

    • Store;

    • Reader;

    • Proxy;

    • объект Record.

ExtJS предлагает следующие средства для визуализации:

  • Layout;

  • Tooltip;

  • Таб-панель;

  • Tree;

  • Форма;

  • Grid.

В Prototype присутствуют самые разные способы упрощения создания JavaScript-приложений, от сокращенного вызова некоторых функций языка до сложных методов обращения к XMLHttpRequest:

  • $();

  • $$();

  • $F();

  • $A();

  • $H();

  • объект Ajax;

  • Element.

Prototype добавляет поддержку объектно-ориентированного программирования.

jQuery – библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML.

Возможности jQuery:

  • переход по дереву DOM, включая поддержку XPath как плагина;

  • события;

  • визуальные эффекты;

  • AJAX-дополнения;

  • JavaScript-плагины.

Вся работа с jQuery ведется с помощью функции $.

jQuery предлагает разработчику большое количество методов для манипуляции элементами документа и их свойствами.

Главная особенность большинства методов jQuery – это возможность связывать их в цепочки.

Технология Comet – модель работы Веб-приложения, при которой постоянное HTTP-соединение позволяет Веб-серверу отправлять (push) данные браузеру без дополнительного запроса со стороны браузера.

HTTP server push – механизм отправки данных с Веб-сервера к Веб-браузеру

Один из способов узнать, нет ли на сервере каких либо обновлений, применять технологию AJAX, с определенным интервалом времени делать запрос на сервер (short polling).

Технология long polling, позволяет делать запросы, которые возвращают результат, как только он появляется.

32