Мой сайт использует onload AJAX. Поэтому, когда пользователь, входящий в вызовы AJAX на странице 6, выполняется параллельно. В середине процесса, если пользователь закроет браузер или переместится на другую страницу, я хочу убить запросы.
Шаги для достижения этого:
1. Найдите идентификатор выполнения следующего MySQL-запроса (идентификатор соединения) и сохраните его в сеансе.
http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html
Нам нужно идентифицировать этот идентификатор перед выполнением запроса READ (select). Потому что PHP будет выполняться по строкам.
проблема
How do we identify the next connection identifier?
ИЛИ
How do we reserve the connection identifier and execute the query on specified identifier?
2 . Выполните запрос в базе данных.
3. Если пользователь прерван, то будет уничтожено выполнение запроса MySQL. Мы можем обнаружить пользовательский прерванный статус в PHP с помощью функции connection_aborted () / ignore_user_abort ().
Используйте эту следующую команду для завершения выполнения этого запроса:
KILL ID
Шаг 1: Получить идентификатор потока соединения MySql
$thread_id = mysqli_thread_id($link);
Шаг 2: Используйте ignore_user_abort (); в коде
Шаг 3: Проверьте, закрыто ли соединение. Если да, то уничтожьте поток следующим образом:
if (connection_aborted() && mysqli_kill($connection_link, $thread_id)) { die(); }
Проверьте принятое решение этого вопроса .
Следующий запрос также возвращает текущий идентификатор соединения
SELECT CONNECTION_ID();
После получения этого идентификатора соединения мы можем выполнить наш запрос по этому идентификатору.