Вернуть значение в браузер, но все еще обрабатывать в PHP - PullRequest
1 голос
/ 31 января 2010

Я использую flash для вызова страницы PHP, которая должна быть немного обработана. Можно ли позволить PHP продолжить обработку, но в любом случае показать ответ, чтобы flash не зависал в ожидании?

Ответы [ 4 ]

1 голос
/ 31 января 2010

Мой ответ от здесь :

Вы можете отправить Соединение: Закрыть заголовки, которая завершает страницу для вашего пользователя, но позволяет вам выполнять вещи "после загрузки страницы".

Существует простой способ игнорировать пользователя прервать (см. php manual

ignore_user_abort(true);
0 голосов
/ 31 января 2010

Вы можете попробовать использовать 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);
}
0 голосов
/ 31 января 2010

Вы можете закрыть соединение внутри зарегистрированной функции в register_shutdown_function, если вам не нужно ждать окончания обработки для вывода содержимого (т. Е. Если вам не нужно выводить что-либо, связанное с результатом обработки, которую вы хотитесделать).

См .: http://www.php.net/manual/en/features.connection-handling.php#93441

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

0 голосов
/ 31 января 2010

Используйте для этого выходной контроль или буферизацию вывода. http://www.php.net/manual/en/function.ob-flush.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...