Что происходит, когда клиент отключен?

Когда браузер отправляет запрос http на веб-сервер. И этот запрос будет запускать скрипт PHP, который будет вызывать функции A, B и C.

Если соединение с браузером потеряно во время выполнения PHP-функции A, продолжит ли он запускать скрипт и вызывать функции B и C?

0

Решение

В PHP это просто контролируется в файле ini:

; If enabled, the request will be allowed to complete even if the user aborts
; the request. Consider enabling it if executing long requests, which may end up
; being interrupted by the user or a browser timing out. PHP's default behavior
; is to disable this feature.
; http://php.net/ignore-user-abort
;ignore_user_abort = On

По умолчанию в PHP 5.6.3, поведение заключается в том, чтобы убить скрипт, если вы закрываете браузер. Закрытие вашей вкладки, по крайней мере, в Chrome, не убивает скрипт. Вы должны закрыть браузер.

1

Другие решения

Проблема в том, что традиционная модель HTTP не является интерактивной моделью.
Единственный способ сделать определенно убедитесь, что ваш скрипт не запускается, если пользователь закрыл страницу:
1. Включите эти строки в начале вашего скрипта:
<?php
ob_implicit_flush();
ob_end_flush();
...

2. Для кода, который вы не хотите запускать после выхода пользователя:

<?php
if(!connection_aborted()){
//your code here
}

Надеюсь это поможет …

1

По вопросам рекламы [email protected]