关闭页面时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----文件操作
Jan 18 Javascript
ExtJS 入门
Oct 29 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
Oct 23 Javascript
jquery增加和删除元素的方法
Jan 14 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
JavaScript Split()方法
Dec 18 Javascript
AngularJS国际化详解及示例代码
Aug 18 Javascript
原生JavaScript实现Tooltip浮动提示框特效
Mar 07 Javascript
node.js实现登录注册页面
Apr 08 Javascript
js编写选项卡效果
May 23 Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 Javascript
仿ElementUI实现一个Form表单的实现代码
Apr 23 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 #Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 #Javascript
Javascript让DEDECMS告别手写Tag
Sep 01 #Javascript
通过JS来动态的修改url,实现对url的增删查改
Sep 01 #Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 #Javascript
原生javascript实现拖动元素示例代码
Sep 01 #Javascript
使用text方法获取Html元素文本信息示例
Sep 01 #Javascript
You might like
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
vue实现评论列表功能
2019/10/25 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
python验证码识别的示例代码
2017/09/21 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
安全先进个人材料
2014/12/29 职场文书
党支部鉴定意见
2015/06/02 职场文书
运动会通讯稿200字
2015/07/20 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
解决Python字典查找报Keyerror的问题
2021/05/26 Python
分享Python异步爬取知乎热榜
2022/04/12 Python
Android自定义双向滑动控件
2022/04/19 Java/Android