关闭页面时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 相关文章推荐
基于Jquery的跨域传输数据(JSONP)
Mar 10 Javascript
js String对象中常用方法小结(字符串操作)
Jan 27 Javascript
浅析JavaScript中的typeof运算符
Nov 30 Javascript
jquery easyui 结合jsp简单展现table数据示例
Apr 18 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
Feb 26 Javascript
浅谈js中的引用和复制(传值和传址)
Sep 18 Javascript
jquery html5 视频播放控制代码
Nov 06 Javascript
Node.js pipe实现源码解析
Aug 12 Javascript
在node环境下parse Smarty模板的使用示例代码
Nov 15 Javascript
微信小程序实现电子签名并导出图片
May 27 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
Jun 07 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
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP7匿名类用法分析
2016/09/26 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
python连接数据库的方法
2017/10/19 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
2014新年元旦活动策划方案
2014/02/18 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
作风建设演讲稿
2014/05/23 职场文书
擅自离岗检讨书
2014/09/12 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
python 调用js的四种方式
2021/04/11 Python
教你用eclipse连接mysql数据库
2021/04/22 MySQL
python解析json数据
2022/04/29 Python