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

如何在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 设置中进行设置。但是,您永远无

  • 我在src/test/resources/feature/中有以下功能文件(单独的功能文件),我想并行运行它们。比如:一个功能文件必须在chrome中执行,另一个必须在另一个chrome实例中执行,如@Tags name所述。 我正在使用Java1.2。5版本,AbstractTestNGCucumberTests作为runner。我可以运行一个功能文件,但当我尝试使用cucumber jvm并行

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

  • 我的查询如下: 我得到一个错误“意外的'*'”。在第6行,请让我知道,如何重写或更正这个问题 谢谢,去吧

  • 问题内容: 我有一个用ASP.NET MVC编写的网站。我有一个页面,用户可以在其中创建小文章。他们可以在本文中选择图片。我有一个页面,他们可以在其中上传图片,在“创建文章”页面上,只需列出它们即可。但是许多人抱怨他们在意识到自己没有上传所需图像之前写了整篇文章。我想要的是用户能够从“创建文章”页面上载图片,然后重新加载我的可能图片下拉菜单供您选择。 我正在考虑在页面上制作一个单独的多部分表单,然

  • 问题内容: 情况: 我正在AngularJs中制作一个分配权限的应用程序。为了做到这一点,我有三个嵌套的ng-repeat。 第一循环 :显示PERMISSION GROUP 第二个循环 :对于每个权限组,显示“类别”。在此循环内执行一个函数,该函数将获取每个类别的所有子类别 第三循环 :显示子类别 问题: 问题在于第二个循环内函数的执行。 尝试1-ng-init: 在控制器中: 行为很奇怪。可能