
- •13. Создание динамического наполнения страницы. JavaScript-библиотеки и технология Comet
- •13.1. Представление объектов в виде json
- •13.1.1. Использование
- •13.1.2. Синтаксис
- •13.1.3. Использование json в Ajax
- •13.1.4. Вопросы безопасности
- •13.1.4.1. JavaScript eval()
- •13.1.4.2. Подделка кроссдоменного запроса
- •13.2. Библиотека ExtJs
- •13.2.1. Объектно-ориентированное программирование
- •13.2.1.1. Ext.Namespace
- •13.2.1.2. Ext.Override
- •13.2.1.3. Ext.Extend и соглашения о параметрах конструкторов
- •13.2.1.4. Ext.Apply
- •13.2.1.5. Ext.ApplyIf
- •13.2.2. Построение веб-интерфейсов
- •13.2.3. Использование css
- •13.2.4. Основные компоненты и возможности
- •13.2.5. Визуальные компоненты
- •13.3. Библиотека Prototype
- •13.3.1. Возможности
- •13.3.1.6. Объект Ajax
- •13.3.1.7. Класс Element
- •13.3.2. Объектно-ориентированное программирование
- •13.4. Библиотека jQuery
- •13.4.1. Философия
- •13.4.2. Использование
- •13.4.4. Инициализация
- •13.4.5. Управление элементами документов и их свойствами
- •13.4.5.1. Последовательный вызов функций
- •13.4.6. Работа с индивидуальными элементами
- •13.4.6.1. Индексы и get([index])
- •13.4.6.2. Each(fn)
- •13.4.7. Анимации
- •13.4.7.1. Animate
- •13.4.7.2. Эффекты
- •13.4.8. Ajax
- •13.5. Модель работы веб-приложений Comet
- •13.5.1. Http server push
- •13.5.2. Pooling
- •13.6. Ключевые термины
- •13.7. Краткие итоги
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, позволяет делать запросы, которые возвращают результат, как только он появляется.