Когда браузер отправляет запрос http на веб-сервер. И этот запрос будет запускать скрипт PHP, который будет вызывать функции A, B и C.
Если соединение с браузером потеряно во время выполнения PHP-функции A, продолжит ли он запускать скрипт и вызывать функции B и C?
В 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, не убивает скрипт. Вы должны закрыть браузер.
Проблема в том, что традиционная модель HTTP не является интерактивной моделью.
Единственный способ сделать определенно убедитесь, что ваш скрипт не запускается, если пользователь закрыл страницу:
1. Включите эти строки в начале вашего скрипта:
<?php
ob_implicit_flush();
ob_end_flush();
...
2. Для кода, который вы не хотите запускать после выхода пользователя:
<?php
if(!connection_aborted()){
//your code here
}
Надеюсь это поможет …