如何在onbeforeunload上执行ajax函数?
我正在开发一个PHP / JavaScript聊天。
当用户login时,他/她的用户名被插入一个称为queue
的MySQL表中。 该插入返回将存储在名为$_SESSION['CHAT_QUEUE_ID']
的会话variables中的mysql_insert_id()
当用户closures页面时,我需要删除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
有没有办法做到这一点?
你开火你的ajaxasynchronous(jQuery的默认 – Ajax)。 但浏览器不会等待任何卸载。
尝试在ajax设置中设置async : false
。 但是,你永远无法确定这个function会在所有的浏览器中都能正常工作。
看到这里的评论: http : //api.jquery.com/unload/#dsq-comment-body-132164390