关闭页面window.location事件未执行的原因及解决方法


Posted in Javascript onSeptember 01, 2014

1、问题描述:

JS中定义widow.location = function(),页面关闭时,logout()函数未执行。

window.onunload = function() {
logout();
}

function logout(reqParam, callback){
var userManageServiceUrl = "http://" + getServerAddr() + "/axis2/services/UserManageService";
var urlList = [];
var url = window.location.href;
urlList = url.split("?");
var sessionID = urlList[1];
reqParam.sessionID = sessionID;
var pl = new SOAPClientParameters();
var reqParamStr = JSON.stringify(reqParam);
pl.add("reqParam", reqParamStr);
SOAPClient.invoke(userManageServiceUrl, "logout", pl, false, callback);
}

2、问题原因:

logout()中调用SOAPClient.invoke()方法,参数为true,代表前端和server是异步方式通信,即前端还未接收到server端的响应,便已经执行后面的语句了,在该问题中表现为前端执行logout()时还未等到server的响应,便已经将页面关闭了,所以表现为logout()未执行。

3、解决方法:

将前端和server通信方式改为同步,即将SOAPClient.invoke()方法中true改为false,问题得到解决。

Javascript 相关文章推荐
json跟xml的对比分析
Jun 10 Javascript
理解Javascript_08_函数对象
Oct 15 Javascript
50款非常棒的 jQuery 插件分享
Mar 29 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 Javascript
微信小程序中post方法与get方法的封装
Sep 26 Javascript
vue获取input输入值的问题解决办法
Oct 17 Javascript
node.js基础知识小结
Feb 26 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
vue3中的组件间通信
Mar 31 Vue.js
文本框倒叙输入让输入框的焦点始终在最开始的位置
Sep 01 #Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 #Javascript
一个简单的动态加载js和css的jquery代码
Sep 01 #Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 #Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 #Javascript
浅析JQuery中的html(),text(),val()区别
Sep 01 #Javascript
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 #Javascript
You might like
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue自动化路由的实现代码
2019/09/30 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
渗透攻击的测试步骤
2014/06/07 面试题
岗位竞聘演讲稿
2014/01/10 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
自行车广告词大全
2014/03/21 职场文书
詹天佑教学反思
2014/04/30 职场文书
买房子个人收入证明
2014/10/12 职场文书
2015年人事科工作总结
2015/04/28 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python