adsPlace_1

Войти или Зарегистрироваться

adsPlace_3

Буферизация вывода на PHP

Не секрет что буферизация вывода в PHP по умолчанию включена. В более ранних версиях PHP строка с данными отправлялась в браузер каждый раз когда интерпретатор обрабатывал оператор echo или текст вне php кода.

Буферизация вывода делает процесс загрузки страницы более быстрым и эффективным. Буфер это по существу участок памяти для хранения одной большой строки. Когда текст подается на выход, он складывается в буфер, вместо немедленной отдачи в браузер.

Затем данные из буфера отдаются в браузер и буфер очищается. Это происходит в следующих случаях:

  • PHP интерпретатор достиг конца файла скрипта.
  • Буфер заполнился до максимального значения, установленного настройках буферизации вывода в PHP.
  • Был произведен вызов функций flush() или ob_flush().

Для того чтобы быть полностью уверенным что буфер работает стабильно, перед буферизацией страницы рекомендуется очищать буфер. Это делается так:

<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="UTF-8" />
    <title>Пример очистки буфера</title>
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <link rel="shortcut icon" href="favicon.ico" />
    </head>
    <?php
    // очистка буфера
    flush();
    ?>
    <body>
</html>

Как только браузер получил html заголовок, он начинает загрузку файлов css, favicon.ico и т.д. Эта загрузка будет происходить в момент когда браузер будет получать основной body контент.

Увеличение скорости загрузки страницы будет зависеть от серверной обработки скриптов, веса вашей страницы, количества и размера ваших css файлов, а также возможностью кеширования расурсов браузером. Однако, это настолько простая оптимизация, что существует мало причин не делать ее. В большинстве случаев этот способ даст положительные результаты.

Последние из рубрики

Комментарии(0)

  • Комментариев еще нет. Будь первым!

    Оставь свой отзыв

    Для вставки кода используйте кнопки php, html, javascript, css, sql

    * - поля обязательны к заполнению