Как GMail Chat может делать запросы AJAX без взаимодействия с клиентом?
Все ответы HTTP требуют, чтобы клиент инициировал их, даже те, которые сделаны с использованием AJAX. Но функция чата GMail может получать сообщения от других пользователей, даже когда я просто сижу в своем удобном компьютерном кресле и наблюдаю, но не взаимодействую с браузером. Как они это делают?
3 ответа
Эта технология известна как "комета", но также как "серверный толчок", "обратный ajax" и т. Д.
Речь идет о передаче данных с сервера в браузер, поддерживая HTTP-соединение живым. Более подробную информацию об этом можно найти в статье в Википедии ( английская версия).
Также здесь есть довольно хорошая презентация с Джо Уокером из DWR, где он рассказывает о комете.
Как вы правильно заметили, HTTP требует, чтобы данные были "извлечены" клиентом. Gmail все еще может "извлекать" данные с сервера, используя таймер для запуска операции HTTP вместо того, чтобы требовать от пользователя щелчка по чему-либо. Таким образом, это может показаться автоматическим, но он все еще инициирован клиентом.
Да, кометы это правильно. Приложения Google Web Toolkit от Райана Дьюсбери (Ryan Dewsbury) объясняют, как создать приложение Instant Messenger на основе Comets, в главе 9.