关闭页面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 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
jQuery 剧场版 你必须知道的javascript
May 27 Javascript
Javascript 代码也可以变得优美的实现方法
Jun 22 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
Feb 23 Javascript
关于Vue在ie10下空白页的debug小结
May 02 Javascript
Vue多环境代理配置方法思路详解
Jun 21 Javascript
使用vscode快速建立vue模板过程详解
Oct 10 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
可拖拽组件slider.js使用方法详解
Dec 04 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
python Flask实现restful api service
2017/12/04 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
python修改文件内容的3种方法详解
2019/11/15 Python
Python Selenium参数配置方法解析
2020/01/19 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
车间统计员岗位职责
2014/01/05 职场文书
升职演讲稿范文
2014/05/23 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
节电标语大全
2014/06/23 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
转学证明范本
2015/06/19 职场文书
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python
SpringBoot详解执行过程
2022/07/15 Java/Android