Facebook использует инструмент, который они разработали, под названием Big Pipe, чтобы в основном транслировать свой сайт клиенту частями.Они отправляют начальный тег сценария с пустым DOM клиенту, и сценарий загружает модули на странице асинхронно - идея заключается в том, что клиент представляет модуль 1, пока сервер выбирает модуль 2, что улучшает время загрузки.
Кроме того, они используют технику, которая называется long polling .С HTTP 1.1 они могут использовать постоянное соединение и не беспокоиться о тайм-аутах.Когда страница отображается, клиентский скрипт отправляет AJAX-запрос в Facebook, чтобы «прослушать» событие.Он будет сидеть и слушать, пока не произойдет событие.Тем временем браузер будет «загружать» данные.
Когда событие запускается в конце Facebook (скажем, кто-то прокомментировал вашу запись на стене), FB отправит этот ответ клиенту для запуска соответствующих обратных вызовов (например, всплывающая подсказка, сообщающая вамо комментарии) и НЕМЕДЛЕННО отправьте еще один запрос в FB для прослушивания следующего события.