关闭页面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增加join方法的实现代码
Nov 28 Javascript
瀑布流布局代码一例
Apr 11 Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
Jun 12 Javascript
JS实现n秒后自动跳转的两种方法
Nov 30 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
Vue.extend实现挂载到实例上的方法
May 01 Javascript
vue中axios实现数据交互与跨域问题
May 12 Javascript
基于iview-admin实现动态路由的示例代码
Oct 02 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
php curl常用的5个经典例子
2017/01/20 PHP
PHP实现文件上传与下载
2020/08/28 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
js判断密码强度的方法
2020/03/18 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
python三元运算符实现方法
2013/12/17 Python
python获取从命令行输入数字的方法
2015/04/29 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
python实现文字版扫雷
2020/04/24 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
墨西哥购物网站:Elektra
2020/01/21 全球购物
Linux如何为某个操作添加别名
2015/02/05 面试题
预备党员转正思想汇报
2014/01/12 职场文书
给校长的建议书400字
2014/05/15 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏
如何利用python实现Simhash算法
2022/06/28 Python