关闭页面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 相关文章推荐
JavaScript TO HTML 转换
Jun 26 Javascript
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 Javascript
VS2008中使用JavaScript调用WebServices
Dec 18 Javascript
js密码强度实时检测代码
Mar 02 Javascript
微信小程序加载更多 点击查看更多
Nov 29 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 Javascript
20个最常见的jQuery面试问题及答案
May 23 jQuery
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
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调用mysql存储过程
2007/02/14 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
对联广告js flash激活
2006/10/19 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python 正则表达式操作指南
2009/05/04 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
市场营销专业个人求职信范文
2013/12/14 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
就业意向协议书
2015/01/29 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
盲山观后感
2015/06/11 职场文书
安全生产感想
2015/08/07 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
一文搞懂Python Sklearn库使用
2021/08/23 Python
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis