Главная Библиотека Оптимизация работы сайта Сервер Очистка буфера до получения ответа от сервера

Очистка буфера до получения ответа от сервера

В статье "Flush the Buffer Early" автор говорит о функции Flush, доступной в PHP, которая позволяет ускорить загрузку страницы.

Когда пользователь отправляет запрос, чтобы открыть страницу, сервер обрабатывает его от 200 до 500ms. В течение этого времени браузер бездействует, так как ожидает прихода данных. В PHP у Вас есть возможность воспользоваться функцией flush(). Это позволит отправить частично готовые HTML-ответы на браузер, чтобы он мог начать выборку компонентов, пока сервер занят обработкой остальной части HTML-страницы. Преимущество от этого можно увидеть в основном на высокозагруженных бэкэндах или "лёгких" фронтэндах.

  Лучшее местоположение для flush - сразу после заголовка, потому что для HTML заголовка обычно проще реализовать, и это также позволяет Вам вставить любой файл CSS и JavaScript, чтобы браузер начал выборку, в то время как сервер всё ещё обрабатывает запрос.

Пример:

      ... <!-- css, js -->
    </head>
    <?php flush(); ?>
    <body>
      ... <!-- content -->

Yahoo! search стал первопроходцем в изучении и тестировании с целью доказать преимущества использования данного метода. 

Оригинал статьи на developer.yahoo.com

Перевод КОМТЕТ komtet.ru