关闭页面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函数中参数传递问题示例探讨
Jul 31 Javascript
js实现touch移动触屏滑动事件
Apr 17 Javascript
JQuery中基础过滤选择器用法实例分析
May 18 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
Dec 03 Javascript
非常棒的jQuery图片轮播效果
Apr 17 Javascript
微信小程序 教程之模板
Oct 18 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
Dec 12 Javascript
vue左侧菜单,树形图递归实现代码
Aug 24 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
原生js实现俄罗斯方块
Oct 20 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
laravel自定义分页效果
2017/07/23 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
如何在PHP中读写文件
2020/09/07 PHP
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python使用thrift教程的方法示例
2019/03/21 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
精彩的英文自荐信
2014/01/30 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
工地食品安全责任书
2015/05/09 职场文书
致青春观后感
2015/06/09 职场文书