关闭页面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 清除输入框中的数据
Apr 13 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
JS实现OCX控件的事件响应示例
Sep 17 Javascript
2014最热门的JavaScript代码高亮插件推荐
Nov 25 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
js获取内联样式的方法
Jan 27 Javascript
javascript实现动态统计图开发实例
Nov 21 Javascript
React中使用collections时key的重要性详解
Aug 07 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
Sep 19 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
关于Layui Table隐藏列问题
Sep 16 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
php打开文件fopen函数的使用说明
2013/07/05 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
浅析JavaScript动画
2015/06/10 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python3实现点餐系统
2019/01/24 Python
python程序 创建多线程过程详解
2019/09/23 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
python 基于opencv操作摄像头
2020/12/24 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
毕业自我评价
2014/02/05 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
四风自我剖析材料
2014/09/30 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
golang为什么要统一错误处理
2022/04/03 Golang