Что вам нужно, это SSE (события, отправленные сервером). Единственным недостатком является то, что он еще не поддерживается ни одним из IE, поэтому вам, вероятно, потребуется также реализовать некоторые функции обнаружения (например, modernizr.js ) и использовать либо long- опрос или SSE в зависимости от того, поддерживает ли ваш браузер SSE (или просто используйте SSE polyfill , к счастью, их достаточно).
Почему вы, вероятно, захотите реализовать оба метода вместо использования хорошо поддерживаемого long-polling ? Отправленные сервером события против опроса .
Вот учебник по реализации PHP : http://www.w3schools.com/html/html5_serversentevents.asp
И хорошее объяснение того, что SSE дает вам:
HTML5 представил API для работы с событиями, отправляемыми сервером. Основная идея SSE проста: веб-страница подписывается на источник событий на веб-сервере, который передает обновления. Веб-странице не нужно постоянно опрашивать сервер, чтобы проверить наличие обновлений (как мы сделали с опросом AJAX) - они приходят автоматически. Обратите внимание, что скрипт на стороне клиента может только прослушивать обновления, он не может ничего публиковать (сравните это с веб-сокетами, где клиент может подписываться и публиковаться). Поэтому все функции публикации выполняются сервером.