关闭页面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 动态加载 css 方法总结
Jul 11 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
jQuery on()绑定动态元素出现的问题小结
Feb 19 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
Jan 08 Javascript
面试常见的js算法题
Mar 23 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
Sep 13 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 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
新闻分类录入、显示系统
2006/10/09 PHP
PHP中的正规表达式(一)
2006/10/09 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
决策树的python实现方法
2014/11/18 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
python七夕浪漫表白源码
2019/04/05 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
我的中国梦口号
2014/06/16 职场文书
加班费申请报告
2015/05/15 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL
一文搞懂Java中的注解和反射
2022/06/21 Java/Android