Выходная буферизация PHP обычно включена по умолчанию. В более старых версиях PHP строка отправлялась в ваш браузер каждый раз, когда интерпретатор встречал оператор echo или текст вне разделителей PHP.
Буферизация вывода делает этот процесс быстрее и эффективнее. Буфер по сути является большой резидентной строкой памяти. Когда текст выводится, он добавляется в буфер, а не сразу возвращается в браузер. Затем буфер «очищается», то есть его содержимое передается, и строка сбрасывается в ожидании дальнейшего вывода. Промывка происходит, когда:
- интерпретатор PHP достигает конца страницы
- буфер превышает количество байтов, указанное в параметре конфигурации PHP output_buffering , или
- Вызываются функции flush () или ob_flush () .
Есть несколько предостережений, но, предполагая, что это работает в вашей среде, вы должны рассмотреть возможность очистки буфера сразу после тега </ head> страницы, например
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Buffer flushing in action</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <link rel="shortcut icon" href="favicon.ico" /> </head> <?php // flush the buffer flush(); ?> <body> …
(Если вы используете WordPress, вы можете использовать подобный код в файле header.php вашей темы.)
После того как браузер получил заголовок HTML, он может начать загружать все связанные CSS-файлы, значки избранного и другие ресурсы. Эти загрузки могут происходить, когда браузер находится в режиме ожидания и ожидает основного содержимого.
Увеличение скорости будет зависеть от требуемой обработки на стороне сервера, веса вашей страницы, количества и размера ваших CSS-файлов, а также от того, кэшировал ли браузер какие-либо ресурсы. Тем не менее, это такая простая оптимизация, нет причин не делать этого.
Мне было бы интересно узнать, приводит ли эта техника к ощутимой разнице в скорости на вашем сайте или в приложении.