Intereting Posts

Как выполнить функцию ajax onbeforeunload?

Я разрабатываю чат php / javascript.

Когда пользователь входит в систему, его имя пользователя вставляется в таблицу MySQL, называемую queue . Эта вставка возвращает mysql_insert_id() которая будет храниться в переменной сеанса с именем $_SESSION['CHAT_QUEUE_ID']

Мне нужно, чтобы строка таблицы MySQL была удалена, когда пользователь закрывает страницу.

Я пробовал следующее, но безуспешно:

js-файл

 window.onbeforeunload = closeSession; function closeSession(){ $.ajax({ url: "/chat/process/chat.php", type: "GET" }); return "disconnected"; } 

chat.php

 $delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID']; // query, etc 

Есть какой-либо способ сделать это?

Solutions Collecting From Web of "Как выполнить функцию ajax onbeforeunload?"

Вы запускаете асинхронный асинхронный аймакс (по умолчанию для jquery – ajax). Но браузер не будет ждать чего-либо при разгрузке.

попробуйте установить async : false в настройках ajax. Но вы никогда не можете быть уверены, что это будет работать во всех браузерах каждый раз.

см. комментарий здесь: http://api.jquery.com/unload/#dsq-comment-body-132164390