关闭页面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 相关文章推荐
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
Oct 23 Javascript
JavaScript检测实例属性, 原型属性
Feb 04 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
EasyUI创建对话框的两种方式
Aug 23 Javascript
前端程序员必须知道的高性能Javascript知识
Aug 24 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
javascript编写简易计算器
May 06 Javascript
详解vue-cli构建项目反向代理配置
Sep 07 Javascript
JavaScript实现职责链模式概述
Jan 25 Javascript
vue使用vuex实现首页导航切换不同路由的方法
May 08 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安装全攻略:APACHE
2006/10/09 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
校庆筹备方案
2014/03/30 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
2019消防宣传标语!
2019/07/10 职场文书
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL
element tree树形组件回显数据问题解决
2022/08/14 Javascript