关闭页面时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 03 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
Apr 02 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
Jan 30 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
JS脚本实现网页自动秒杀点击
Jan 11 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 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
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
再论Javascript的类继承
2011/03/05 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
空气环保标语
2014/06/12 职场文书
员工2014年度工作总结
2014/12/09 职场文书
导游词300字
2015/02/13 职场文书
行政经理岗位职责
2015/04/15 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
青年联谊会致辞
2015/07/31 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
Python实现简单的猜单词
2021/06/15 Python