我正在开发一个php/javascript聊天。如何在onbeforeunload上执行ajax函数?
当用户登录时,他/她的用户名将被插入名为queue
的MySQL表中。 此插入返回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
有没有办法做到这一点?
你知道了''onbeforeunload''限制该浏览器支持?例如。歌剧不支持它。 – ckruse 2012-03-14 12:17:32
我没有想到这一点。任何建议? – matheusvmbruno 2012-03-14 12:50:41
常用的方法是定义超时。如果用户在特定时间内没有进行任何活动,则会断开连接。 – ckruse 2012-03-14 12:52:59