Отключение буферизации вывода в PHP

У меня есть объект для задач и __deconstruct(), он предназначен для запуска некоторых более длительных задач очистки после того, как остальная часть страницы уже загружена. К сожалению, он буферизует вывод и не будет отправлять его до тех пор, пока задачи не будут завершены (в задачах ничего не печатается).

Я прочитал http://www.php.net/flushи испробовал все предложенные там предложения. Очевидно, я пытался отключить output_buffering в php.ini. Я отключил deflate_module, сжатие zlib отключено, mod_gzip отсутствует. Вызов flush() или ob_flush() не имеет никакого эффекта, равно как и включение implicit_flush.

Я просто запускаю XAMPP (в настоящее время apache 2.2.17, php 5.3.4) под Windows Server 2008 R2. PHP запускается как модуль.

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

Из похожей темы кто-то предложил посмотреть, что будет делать следующее:


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

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

5
задан Apropos 15 March 2012 в 20:45
поделиться