По умолчанию и правильное поведение пользовательского клиентского браузера заключается в том, что он ДОЛЖЕН уведомить, что загрузка страницы была отменена - причины не имеют значения - пользователь либо нажал кнопку «Назад», кнопку «Стоп», нажал другую ссылку или просто закрыл браузер.
По умолчанию в PHP - сервер получает это уведомление и покидает страницу обработки. Это зависит от установки директивы php.ini ignore_user_abort
- см. эту страницу документации PHP .
Сервер ведет себя при установке директивы ignore_user_abort
. Если для него установлено значение false (по умолчанию), тогда он просто прекращает обработку запроса. Если задано значение true, запрос завершается, так как он не получает никакого уведомления об отмене пользователя.
Не рекомендуется запускать с ignore_user_abort = true
для всего сервера, поэтому я бы не советовал помещать его прямо в файл php.ini. Но вы можете поместить этот код в начало скрипта, что крайне важно для вас, чтобы быть атомарным и всегда заканчиваться при запуске:
ini_set('ignore_user_abort', true);