Интересно о буферизации в php. Я прочитал много потоков об этом.Почему буферизация по умолчанию не включена в php
How to fix “Headers already sent” error in PHP
Why use output buffering in PHP?
Я прочитал только о преимуществах, не было сведения о недостатках использования буферизации.
Ex.
Преимущества буферизацию вывода для веб-разработчиков
- Токарный буферизацию вывода в одиночку уменьшает количество времени, необходимое для загрузки и рендеринга наш HTML, потому что он не отправляется в браузер на куски, как PHP процессов HTML.
- Все фантазии, которые мы можем сделать с помощью строк PHP, теперь можем сделать с нашей всей HTML-страницей как одну переменную.
- Если вы когда-либо сталкивались с сообщением «Предупреждение: невозможно изменить информацию заголовка - заголовки, уже отправленные (вывод)» при настройке файлов cookie, вы с удовольствием узнаете, что буферизация вывода - это ваш ответ.
Если буферизация вывода обеспечивают только преимущества, почему я должен включить его вручную функции ob_start() или каким-либо другим способом?
Вы хотите скопировать свои страницы входа? –
@JeroenHeier Я не понимаю, если у меня есть бар на всем сайте, где я помещаю имя пользователя из БД, чей вход в систему, Сначала я должен проверить, зарегистрирован ли пользователь, поэтому мне нужно запустить start_session -> и проверить переменные , Укажите «страницу входа». // EDIT С другой стороны, если пользователь хочет войти в систему, сначала я должен проверить, что он не вошел в систему, поэтому на login_page мне следует использовать start_session() – Kentakis15
Недостатки: использование памяти; отсутствие контроля над стеком буферов; могут «потерять» критические сообщения об ошибках; будьте осторожны с бесконечными циклами в вашем коде, если вы буферизуете вывод; риск коррупции, если ваш результат не является текстом/html (например,загрузка файлов); сайт может показаться менее отзывчивым; Сценарии CLI могут не захотеть буферизировать, но отображать вывод напрямую –