关闭页面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 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
May 23 Javascript
js 回车提交表单两种实现方法
Dec 31 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
Jun 30 Javascript
JavaScript实现网页头部进度条刷新
Apr 16 Javascript
微信小程序之购物车功能
Sep 23 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 Javascript
vue+element-ui动态生成多级表头的方法
Aug 28 Javascript
JavaScript常用事件介绍
Jan 21 Javascript
localstorage实现带过期时间的缓存功能
Jun 28 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python编写Logistic逻辑回归
2020/12/30 Python
python模糊图片过滤的方法
2018/12/14 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
基于python实现把图片转换成素描
2019/11/13 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
灵泰克Java笔试题
2016/01/09 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
银行财务部实习生的自我鉴定
2013/11/27 职场文书
责任心演讲稿
2014/05/14 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
房产分割协议书范文
2014/11/21 职场文书
优秀员工事迹材料
2014/12/20 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书