关闭页面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中[]和{}对象使用介绍
Mar 20 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
跨域请求的完美解决方法(JSONP, CORS)
Jun 12 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
Jun 21 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
ES6扩展运算符的用途实例详解
Aug 20 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
Jan 20 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
Apr 12 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
详解vue-router的Import异步加载模块问题的解决方案
May 13 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
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
Python 使用Numpy对矩阵进行转置的方法
2019/01/28 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
浅谈Python __init__.py的作用
2020/10/28 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
关于环保的演讲稿
2014/05/10 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
环境建议书
2015/02/04 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python
使用javascript解析二维码的三种方式
2021/11/11 Javascript
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server
HTML中的表单元素介绍
2022/02/28 HTML / CSS
Python学习之迭代器详解
2022/04/01 Python
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android