Передача выходной информации в броузер

Задача
Необходимо немедленно послать выходную информацию в броузер. Например, если вы хотите сообщить пользователю о выполнении медленного запроса к базе данных.

Решение
Это делается при помощи функции flush():

print 'Finding identical snowflakes...';
flush();
$sth = $dbh->query(
'SELECT shape,COUNT(*) AS c FROM snowflakes GROUP BY shape HAVING c > 1');

Обсуждение
Функция flush() посылает веб-серверу весь вывод, который PHP буферизировал, но веб-сервер может обладать своим собственным буфером, что вызывает задержку, когда информация передается броузеру. Кроме того, некоторые броузеры не показывают информацию сразу по принятии, а некоторые версии броузера Internet Explorer (IE) не показывают страницу, пока не будут приняты хотя бы 256 байт. Чтобы заставить IE показывать содержание, напечатайте пробелы в начале страницы:

print str_repeat(' ',300);
print 'Finding identical snowflakes...';
flush();
$sth = $dbh->query(
'SELECT shape,COUNT(*) AS c FROM snowflakes GROUP BY shape HAVING c > 1');

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Аутентификация, основанная на cookies
Буферизация вывода в броузер
Взаимодействие в рамках Apache
Идентификация различных броузеров
Настройка обработки ошибок

Вернуться в раздел: PHP / 8. Основы Web