我正在开发php / javascript聊天。
用户登录时,其用户名将插入名为的MySQL表中queue。此插入返回mysql_insert_id()将存储在称为$_SESSION['CHAT_QUEUE_ID']
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
有什么办法吗?
您触发ajax异步(jQuery的默认设置-ajax)。但是浏览器不会等待任何卸载。
尝试async : false在ajax 设置中进行设置。但是,您永远无法确定每次都能在所有浏览器中使用该功能。
async : false