Как уменьшить количество AJAX-запросов на чат? - PullRequest
5 голосов
/ 17 мая 2011

У меня есть чат на моем веб-сайте, и он должен отправлять много запросов AJAX на мой сервер (по крайней мере 2 раза в секунду), чтобы проверить, есть ли новые сообщения.
Есть ли способ уменьшить количество запросов и перезагрузка сообщений только после того, как они были опубликованы?
Я знаю, что нет возможности использовать сокеты (потому что я не могу использовать flash, java или функции HTML5), но, возможно, есть какая-то хитрость, связанная с сохранить в живых опция HTTP 1.1?

1 Ответ

6 голосов
/ 17 мая 2011

Да, есть простой способ сделать это.По сути, вы увеличиваете тайм-аут для вашего вызова Ajax до долгого (например, 5 минут).Ваш сервер получает запрос и затем удерживает его, периодически проверяя наличие новых ответов.Затем, когда новый ответ оправдан, он просто отвечает на запрос, и ваш клиент получает обновление.

Если в течение 5 минут не было получено ни одного ответа, ваш клиент просто тайм-аут и запускает новый запрос ajax.Ваш сервер, если он не ответил в течение 5 минут, обычно просто прекращает удерживаемый запрос, чтобы вывести его из очереди.

Эффективное «серверное» нажатие.

...