- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 PHP + MySQL + JavaScript 制作一个小型聊天应用程序,我编写了一个函数 disonnectUser(),当用户按下断开连接按钮时调用该函数。在这里:
function disconnectUser(){
$.post('web/WEB-INF/classes/handleChatUser.php',{ action: 'disconnect',nick: localNickname});
$('#chat').stop(true,true).fadeOut(2000,function(){
nicknameDialog();
});
$('#messageInput').val(null);
$('#clientList').html(null);
$('#chatScreen').html(null);
clearInterval(refreshIntervalId);
clearInterval(refreshIntervalId2);
connected = false;
}
它就像一个魅力,但当我在另一个上下文中调用这个函数时,当用户而不是按断开连接只是退出页面时,在这个函数中
$(window).unload(function() {
if(connected){
disconnectUser();
connected = false;
}
});
这是行不通的。而且我确定它正在被调用,因为如果我发出警报,它会在关闭页面之前正常调用。我认为页面会在代码完全运行之前关闭,所以我认为如果我在那里放置一些 block 直到代码完成运行它会起作用吗?
最佳答案
问题是 $(window).unload()
在关闭窗口之前不等待任何 AJAX 调用(正确的是因为 AJAX 是异步的)。
您需要强制 AJAX 同步,即等待响应。在您的 disconnectUser
函数中:
$.ajax({
type: 'POST',
async: false, // This is the guy.
url: '/blablabla'
});
您可以在这里阅读更多相关信息:$(window).unload wait for AJAX call to finish before leaving a webpage
关于javascript - $(window).unload 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5874182/
----- 简而言之----- 我有一个文件,比如x.html,它加载到其他文件的一些div中(使用函数jquery.load)。 但是x.html需要知道是否在您的位置加载了另一个html。 那么,
美好的一天, 我有java web应用程序,我会在登录后执行类似以下操作: 登录后,系统将显示登陆页面,在登陆页面中,会有一个选项卡菜单,并且选项卡菜单中有许多模块可以触发以导航到不同的页面。 我需要
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: how to delete the pluginassembly after AppDomain.Unload(do
我想在用户使用 jQuery 放弃特定页面时执行操作方法。 该页面有以下代码: $(window).unload(function () { aler
我加载了两个模块(NecessaryModule1.hs 和 NecessaryModule2.hs,如 Haskell : loading ALL files in current director
当用户单击提交按钮并执行操作时,我需要使用 VBA 关闭 Excel 用户窗体。 如何关闭用户表单本身? 我已经尝试过此操作,但它返回 361 错误。 Unload Me 最佳答案 正如最上面的答案所
我尝试运行以下查询以从 Redshift 卸载到 S3,但收到无益的错误。我们尝试转义所有可能导致问题的字符,并传入参数(包装程序是Python): unload ('select
我无法在 SO 上找到使用 Java VM (JVM) 参数来记录类卸载的 Web 搜索工作方式。 这里http://www.herongyang.com/JVM/ClassLoader-JVM-Op
我正在使用 NodeJS-ReactJS 同构应用程序,当我单击 Link 时,我收到一条错误消息 未捕获( promise )错误:请求已终止 可能原因:网络不在线、Access-Control-A
我有以下代码: D $(window).unload( function () { alert("Bye now!"); } );
我正在阅读 jQuery API Documentation 中给出的函数 .unload() 的 jQuery 文档。 上面写得很清楚,.unload()将在1.8之后的版本中被弃用,并在3.x中被
我们一直遇到一个奇怪的问题,我不确定如何解决,我认为这可能与最近的 Google Chrome 更新有关,但我想要一些方法在错误跟踪器上打开问题之前检查自己的健全性。 问题 我们有一个内部网络应用程序
我正在使用 PHP + MySQL + JavaScript 制作一个小型聊天应用程序,我编写了一个函数 disonnectUser(),当用户按下断开连接按钮时调用该函数。在这里: function
我继承了一个 web 框架,以前的开发人员在页面生命周期的 init/unload 方法中打开和关闭了他的数据库连接。构造函数本质上是这样的(为了说明重点而简化); public class Base
我需要在 c#/.net 中实现一个插件架构以便加载 自定义用户定义的操作 自定义数据网格的数据类型处理代码/转换/... 来自非静态链接程序集文件。 因为应用程序必须处理许多自定义用户定义的操作,所
XNA 游戏有一个 Unload() 方法,其中的内容应该被卸载。但这有什么意义呢?如果正在卸载所有内容,那么游戏肯定正在退出,在这种情况下所有内容都会被垃圾收集,对吧? 最佳答案 据我所知,它对任何
根据多种资源(例如,通过 C# 的 MSDN 和 CLR),当我们调用 AppDomain.Unload(userDomain) 时,userDomain 中的线程将被强制抛出 ThreadAbort
到目前为止的故事是这样的,我有一个使用 AppDomain 来执行某些任务的 worker thingy。该域的设置和拆卸成本很高。所以我为工作人员创建了一个 WeakReference 对象的每个线
我正在尝试在卸载页面之前向服务器发帖,然后我关注了 this它工作正常。我的问题是 window.unload 上的 $.post 在它卸载后 被触发。我尝试使用注销链接并检查我的日志,我得到以下信息
任何人都可以解释为什么下面的行会在运行时出现在输出控制台中? (一个可能的答案是完全 permGen,但这可以排除,因为该程序仅使用 PermGen 中可用的 max100MB 中的 24MB) [卸
我是一名优秀的程序员,十分优秀!