Как PHP интерпретатор генерирует страницу?

123
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#11
nezabor:
Dmitriy_2014, вы вообще с какой целью интересовались?
наверное у вас есть проблема и вы решили зайти к ней с огорода

С теоретической/философской целью оптимизации и ускорения загрузки страницы для начинающего любителя. Проблем нет. Грубо говоря, есть кусок кода, который генерирует некий блок появляющегося меню, я его могу вставить в любое место и вот думаю, а какая разница если пока не скомпилируется страница полностью, то где бы код не находился это вроде и не важно.

ME
На сайте с 03.07.2017
Offline
66
#12
Mobiaaa:
Dmitriy_2014, По умолчанию всё так и есть
Скрипт выполняется, а потом всё одним "рывком" отдаётся в браузер

Откуда вы берете этот обред?

В пхп есть размер буфера. По умолчанию он 4kb.

При переполнении буфера его содержимое отправляется в поток вывода. Если страница больше 4kb, то не будет никакого ‘одним рывком’. Рывком будет ровно - размер страницы / размер буфера с округлением до целого в большую сторону

---------- Добавлено 30.05.2018 в 18:47 ----------

Dmitriy_2014:
С теоретической/философской целью оптимизации и ускорения загрузки страницы для начинающего любителя. Проблем нет. Грубо говоря, есть кусок кода, который генерирует некий блок появляющегося меню, я его могу вставить в любое место и вот думаю, а какая разница если пока не скомпилируется страница полностью, то где бы код не находился это вроде и не важно.

Ну в этом случае простым перемещением ничего не добьётесь.

M
На сайте с 17.09.2016
Offline
124
#13

MkrtElion, А если я не использую буферизацию (что по дефолту так и есть, без ob_start()) ?

ME
На сайте с 03.07.2017
Offline
66
#14
Mobiaaa:
MkrtElion, А если я не использую буферизацию (что по дефолту так и есть, без ob_start()) ?

Вы в ini файл загляните и посмотрите какое значение там стоит.

Буферизация работает по умолчанию.

https://www.pixelstech.net/article/1371786827-PHP-buffer%3A-output_buffering-and-ob_start

M
На сайте с 17.09.2016
Offline
124
#15

Это скорей всего настройка у Вас буфера

По дефолту - 0

http://php.net/manual/ru/ini.list.php

output_buffering "0" PHP_INI_PERDIR

nezabor
На сайте с 19.07.2010
Offline
152
#16
Dmitriy_2014:
то где бы код не находился это вроде и не важно.

это крайне не обдуманный подход

есть целые теории построения кода в приложении

например концепция MVC, честно говоря я тоже грешу не слишком чистым кодом, но иногда костыли - это наше все.

---------- Добавлено 30.05.2018 в 19:03 ----------

можно почитать

https://ruseller.com/lessons.php?id=666

---------- Добавлено 30.05.2018 в 19:04 ----------

напрмиер тоже самое меню желательно вообще строить функцией.

---------- Добавлено 30.05.2018 в 19:06 ----------

у вас же ООП , а не просто добавления куска htm в php файл

тоси боси - это же PHP, а он то где бы код не находился это вроде и не важно.

Чудес не бывает...
Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#17

Наверное, это дилетантский бред, но вот смотрите у меня допустим выводится 5000 раз echo ‘чего-то там’, php сразу обработает 5000 и подготовит страницу или будет это делать по 1000 или еще как-то разделит работу? Если 5000 echo мало, то пусть будет миллион.

S
На сайте с 13.10.2014
Offline
171
#18

Dmitriy_2014, он будет выполнять код или пока не переполнит выделенную память или пока не сработает прерывание по таймеру. поэтому, вы можете написать хоть 100 тыщмильёнов итераций цикла, исполняться он будет ровно до тех пор, пока ему будет разрешено. (мы пока рассматриваем работу php в браузер, а не из командной строки)

nezabor
На сайте с 19.07.2010
Offline
152
#19

Dmitriy_2014, сначала PHP соберет все включенные в твой файл файлы. А потом начнет исполнение сверху вниз и будет выполнять каждый echo хоть 100500раз, зависит от мощности окружения

---------- Добавлено 30.05.2018 в 19:26 ----------

Dmitriy_2014, поймите правильно, у вас вообще может быть 1 единственный echo на весь сайт!

все зависит от того как вы строете ваш код

Dmitriy_2014
На сайте с 01.07.2014
Offline
276
#20
nezabor:
Dmitriy_2014, сначала PHP соберет все включенные в твой файл файлы. А потом начнет исполнение сверху вниз и будет выполнять каждый echo хоть 100500раз, зависит от мощности окружения

Так он страницу html сформирует, когда закончит эти 100500 раз echo делать, и разницы между первым echo и последним нет, т.к. пока он не закончит то страницы не будет?
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий