javascript - AJAX 和用户离开页面

标签 javascript jquery ajax

我正在聊天,我正在尝试弄清楚如何检测用户是否离开了页面。几乎一切都由数据库处理,以避免前端搞砸。

所以我要做的是,一旦页面因任何原因离开(窗口关闭、转到另一个页面、单击链接等),ajax 调用将在用户离开之前触发,以便我可以更新数据库。

这是我试过的:

$(window).unload(function(){
      $.post("script.php",{key_leave:"289583002"});
});

由于某些奇怪的原因,它不起作用,我检查了 php 代码,它工作正常。有什么建议吗?

最佳答案

试试这个:

$(window).unload(function(){
    $.ajax({
        type: 'POST',
        url: 'script.php',
        async:false,
        data: {key_leave:"289583002"}
    });
});

注意 async:false,这样浏览器就会等待请求完成。

使用 $.post 是异步的,因此在浏览器停止执行脚本之前请求可能不够快。

关于javascript - AJAX 和用户离开页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10272561/

相关文章:

javascript - 将 $scope 替换为 "' controller' as"syntax

javascript - 如何单独处理多个ajax调用和最终结果

c# - 发送什么来调用 $.post.fail()

javascript - 对条件语句使用两个单独的选择字段值

javascript - 如何将 C# 变量传递给 JavaScript 函数

javascript - 如何根据另一个数组的顺序对一个对象数组进行排序?

javascript - Jquery 自动完成功能在 Bootstrap Modal 中不起作用

javascript - jQuery 将 * 添加到 URL

php - 当 jquery 使用 id 来做某事时,id 可以来自任何类型的标签吗?

javascript - 未发送 Ajax 的 header (通过 Electron WebView )