Как правило, использование таймеров для обновления содержимого на странице с помощью Ajax является по меньшей мере таким же надежным, как и использование долгоживущего потокового соединения, такого как Comet. Брандмауэры, короткая аренда DHCP и т. Д. Могут прервать постоянное соединение, но при опросе клиентское соединение будет восстанавливаться при каждом запросе.
Компромисс в том, что опрос часто требует больше ресурсов на сервере. Даже небольшое количество клиентов, запрашивающих обновления каждые 10 секунд, может значительно увеличить нагрузку на ваш сервер, чем обычные интерактивные пользователи, которые с большей вероятностью загружают новые страницы только каждые несколько минут и будут тратить меньше времени на это перед переходом на другой сайт. , Как одна точка данных, у простого игрушечного приложения Sinatra / Ajax, которое я написал в прошлом году, было 3-5 уникальных посетителей в день на обычные «текстовые» страницы, но его URL-адрес обратного вызова Ajax быстро стал самой востребованной частью любого сайта на сервере. включая несколько сайтов с трафиком на порядок (или более) выше.
Один из способов минимизировать нагрузку из-за опроса - отделить код сервера обратного вызова Ajax от общего кода сайта, если это возможно, и запустить его в своем собственном процессе сервера приложений. Эта служба «промежуточного программного обеспечения» может обрабатывать обратные вызовы опроса, вместо того, чтобы отказываться от потока сервера / слушателя Apache / и т.д. что фактически сводится к вопросу «мы уже там?»
Конечно, если вы ожидаете, что только небольшое количество пользователей (скажем, до 10) будут использовать службу опроса за один раз, продолжайте и запустите ее в том же процессе сервера.