如何在beforeunload上执行ajax函数?

我正在开发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

有什么办法吗?

回答:

您触发ajax异步(jQuery的默认设置-ajax)。但是浏览器不会等待任何卸载。

尝试async : false在ajax 设置中进行设置。但是,您永远无法确定每次都能在所有浏览器中使用该功能。

以上是 如何在beforeunload上执行ajax函数? 的全部内容, 来源链接: utcz.com/qa/405552.html

回到顶部