关闭页面时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 函数对象的多重身份
Jun 28 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
js简单的表格添加行和删除行操作示例
Mar 31 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
jQuery通过Ajax返回JSON数据
Apr 28 Javascript
JQuery 动态生成Table表格实例代码
Dec 02 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
vue2.0实现分页组件的实例代码
Jun 22 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 #Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 #Javascript
Javascript让DEDECMS告别手写Tag
Sep 01 #Javascript
通过JS来动态的修改url,实现对url的增删查改
Sep 01 #Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 #Javascript
原生javascript实现拖动元素示例代码
Sep 01 #Javascript
使用text方法获取Html元素文本信息示例
Sep 01 #Javascript
You might like
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
用js实现计算加载页面所用的时间
2010/04/02 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
水污染治理专业毕业生推荐信
2013/11/14 职场文书
综合办公室主任职责
2013/12/16 职场文书
优秀食品类广告词
2014/03/19 职场文书
迎新生欢迎词
2015/01/23 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python