Facebook использует метод, который теперь называется Comet , для передачи сообщений с сервера клиенту вместо того, чтобы клиент опрашивал сервер.
Есть много способов реализовать это, и длинный опрос XMLHttpRequest является лишь одним из вариантов. Принцип, лежащий в основе этого метода, заключается в том, что клиент отправляет обычный XMLHttpRequest, но сервер не отвечает, пока не произойдет какое-либо событие (например, другой пользователь, отправивший сообщение), поэтому клиент вынужден ждать. Когда клиент получает ответ (или если время ожидания запроса истекло), клиент просто создает новый запрос, чтобы у него всегда был один открытый запрос к серверу.