当前位置: 首页 > 面试题库 >

如何在beforeunload上执行ajax函数?

易宏阔
2023-03-14
问题内容

我正在开发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 设置中进行设置。但是,您永远无法确定每次都能在所有浏览器中使用该功能。



 类似资料:
  • 问题内容: 我正在开发php / javascript聊天。 用户登录时,其用户名将插入名为的MySQL表中。此插入返回将存储在称为 当用户关闭页面时,我需要删除MySQL表行。 我尝试了以下方法,但没有成功: js文件 chat.php 有什么办法吗? 问题答案: 您触发ajax异步(jQuery的默认设置-ajax)。但是浏览器不会等待任何卸载。 尝试在ajax 设置中进行设置。但是,您永远无

  • 问题内容: 在Java 8中,该类没有任何包装的方法。 相反,我从中获取,然后像这样从中获取: 还有其他在我缺少的操作上生成操作的方式吗? 问题答案: 我的类似问题被标记为重复,但这是我用来避免某些样板的辅助方法:

  • 提示:给定一个整数数组,如果该数组在2旁边包含2或在4旁边包含4,则返回true,但不能同时包含这两个。 我只使用了数组,没有使用列表方法,但我想这样做是为了练习。这是我所拥有的,数组。asList()让我有些悲伤。 更新:部分问题是使用int而不是整数。新代码:

  • 问题内容: 我使用$ .ajax()每5秒轮询一次操作方法,如下所示: 和ActionResult动作: 为了使用RedirectToAction,我不得不将操作返回类型更改为ActionResult(最初是JsonResult,而我正在返回),但是从$ .ajax()成功回调中重定向和呈现新的View看起来很麻烦。我需要从此轮询ajax回发中重定向到“ AnotherAction”。Firebu

  • 问题内容: 请告诉我,如何在C 代码中包含javascript头文件或javascript函数。 C 代码是用Linux(UBUNTU)编写的吗? 尽管我仅需要执行上述操作,但是由于我打算实现CTI(计算机电话集成)操作,因此请告诉我我的操作目的。 (将不胜感激)非常感谢 问题答案: 从C ++调用脚本函数 http://clipp.sourceforge.net/Tutorial/back_ca

  • 问题内容: 有什么方法可以从C#执行Go函数吗?对于Python,我将使用Ironpython为例。 我知道我可以产生一个执行Go脚本的过程,但是如果可能的话,我真的不想回退到这种解决方案。 Google搜索没有显示任何内容,因此有什么方法可以使用API​​做到这一点?还是我必须回退流程? 问题答案: 编辑:我的答案现在是不正确的,因为自从我发布以来,Go已经更新。 这个stackoverflow