关闭页面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 相关文章推荐
js自定义事件代码说明
Jan 31 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 Javascript
JavaScript 盒模型 尺寸深入理解
Dec 31 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
Jan 31 Javascript
javascript实现简单的html5视频播放器
May 06 Javascript
jQuery事件用法详解
Oct 06 Javascript
教你5分钟学会用requirejs(必看篇)
Jul 25 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
Dec 12 Javascript
Vue组件实现触底判断
Jun 26 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 Javascript
JS前端可视化canvas动画原理及其推导实现
Aug 05 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
如何删除多级目录
2006/10/09 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery.prop() 使用详解
2015/07/19 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
深入探究node之Transform
2017/07/20 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
python实现rest请求api示例
2014/04/22 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
玩转python爬虫之URLError异常处理
2016/02/17 Python
详谈python read readline readlines的区别
2017/09/22 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python按照多个条件排序的方法
2019/02/08 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
PHP如何对用户密码进行加密
2014/07/31 面试题
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
电频谱管理的原则是什么
2022/02/18 无线电