Я использую flash для вызова страницы PHP, которая должна немного обработать. Возможно ли, чтобы PHP продолжал обрабатывать, но все равно показывал ответ, так что вспышка не останавливается?
Мой ответ отсюда :
Вы можете отправить Connection: Закрыть заголовки, которые заканчивают страницу для вашего пользователя, но позволяют выполнять вещи «после загрузки страницы».
Существует простой способ игнорировать пользовательский прерывание (см. Также руководство по PHP ):
ignore_user_abort(true);
Для этого используйте управление выходными данными, а также буферизацию вывода. http://www.php.net/manual/en/function.ob-flush.php
Вы можете попробовать использовать flush()
В качестве примера попробуйте эти две разные части кода:
// without flush() foreach ( range(1, 5) as $num ) { echo "Beep $num<br>"; sleep(1); } // with flush() foreach ( range(1, 5) as $num ) { echo "Beep $num<br>"; flush(); sleep(1); }
Вы можете закрыть соединение в пределах зарегистрированной функции в функции register_shutdown_function, если вам не нужно ждать завершения обработки для вывода содержимого (т. Е. Если вам не нужно выводить ничего, связанное с результатом обработки, которую вы хотите сделать) ,
См .: http://www.php.net/manual/en/features.connection-handling.php#93441
Причина, положенная в register_shutdown_function, заключается в том, что даже если клиент прерывает соединение, обработка будет продолжаться до самого конца.