关闭页面时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 prototype原型操作笔记
Dec 07 Javascript
基于jquery用于查询操作的实现代码
May 10 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
轻松实现javascript数据双向绑定
Nov 11 Javascript
Bootstrap每天必学之标签页(Tab)插件
Aug 09 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
Vue.js教程之axios与网络传输的学习实践
Apr 29 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
May 17 Javascript
微信小程序 转发功能的实现
Aug 04 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
Angular利用HTTP POST下载流文件的步骤记录
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+DBM的同学录程序(1)
2006/10/09 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
Python实现遍历数据库并获取key的值
2015/05/17 Python
Python中的日期时间处理详解
2016/11/17 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Python虚拟环境venv用法详解
2020/05/25 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
自我鉴定 电子商务专业
2014/01/30 职场文书
企业标语大全
2014/07/01 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
超市创意活动方案
2014/08/15 职场文书
车间安全生产管理制度
2015/08/06 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书
使用Python开发冰球小游戏
2022/04/30 Python
MYSQL如何查看操作日志详解
2022/05/30 MySQL