2008-11-20 7 views
3

Я только начинаю создавать приложение AJAX, используя push на стороне сервера. Я использую Grizzly Comet на Glassfish V2. Почти все примеры приложений используют IFrames для обновления контента на стороне клиента. Я хочу придерживаться только Только JavaScript. Существуют ли такие примеры приложений (желательно те, которые не используют библиотеку JavaScript)?Приложения кометы без использования IFrames

ответ

3

Дело в том, что запрос HTTP никогда не заканчивается. Не все клиентские реализации обрабатывают это правильно. Как я вижу, это можно сделать с помощью чистого javascript в Firefox с его обширным API, но объект XMLHTTPRequest будет тайм-аут и не сможет передать вам контент.

IFrame хорошо, вы также можете попробовать тег объекта, если он соответствует стандарту соответствия.

Прежде чем XMLHTTPRequest и Ajax не имели имени, мы использовали для получения данных с серверов через IFrames.

+0

Я использую XMLHttpRequest, и он работает очень эффективно для потоковой передачи комет в Firefox. К сожалению, мне нужен параметр iframe для IE, но XMLHttpRequest намного приятнее. В IE есть аналогичный объект, однако он не может быть доступен в readyState (mode) 3, как Firefox. В результате вы можете использовать его только при завершении потока - вряд ли полезно для потоковой передачи комет. – Konrad 2010-02-05 15:14:26

1

Вот как я понял, как сделать толчок с помощью только javascript и php.

Имейте javascript, сделайте первоначальный вызов и загрузите содержимое в div. Затем выполните javascript-вызов обратно на php и попробуйте спящий режим, пока не увидите новое обновление. Затем отправьте данные всем и вернитесь к php и снова спящий.

Это позволяет длительный опрос и меньшее количество обратных вызовов. Я лично ставил время от 5 минут до 30 минут на скрипте php.