关闭页面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学习笔记(八) js内置对象
Jun 19 Javascript
复选框全选与全不选操作实现思路
Aug 18 Javascript
深入理解JavaScript是如何实现继承的
Dec 12 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
Apr 25 Javascript
Python脚本后台运行的几种方式
Mar 09 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 Javascript
js微信分享接口调用详解
Jul 23 Javascript
js实现单元格拖拽效果
Feb 10 Javascript
vue中 v-for循环的用法详解
Feb 19 Javascript
Angular CLI发布路径的配置项浅析
Mar 29 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导出oracle库的php代码
2009/04/20 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
利用php输出不同的心形图案
2016/04/22 PHP
php for 循环使用的简单实例
2016/06/02 PHP
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python文件操作类操作实例详解
2014/07/11 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python爬取淘宝商品销量信息
2018/11/16 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
大学竞选班长演讲稿
2014/04/24 职场文书
实习证明模板
2015/06/16 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
CPU不支持Windows11系统怎么办
2021/11/21 数码科技
详解Python内置模块Collections
2022/03/22 Python
springboot入门 之profile设置方式
2022/04/04 Java/Android