当前位置: 首页 > 编程笔记 >

关闭页面时window.location事件未执行的原因分析及解决方案

邵畅
2023-03-14
本文向大家介绍关闭页面时window.location事件未执行的原因分析及解决方案,包括了关闭页面时window.location事件未执行的原因分析及解决方案的使用技巧和注意事项,需要的朋友参考一下

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,问题得到解决。

 类似资料:
  • 本文向大家介绍关闭页面window.location事件未执行的原因及解决方法,包括了关闭页面window.location事件未执行的原因及解决方法的使用技巧和注意事项,需要的朋友参考一下 1、问题描述: JS中定义widow.location = function(),页面关闭时,logout()函数未执行。 2、问题原因: logout()中调用SOAPClient.invoke()方法,参

  • 本文向大家介绍Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法,包括了Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法的使用技巧和注意事项,需要的朋友参考一下 网络收集的原因如下,以及解决办法: 我补充总结一下: 解决办法一: 在操作网络类(socket连接)的activity的prot

  • 本文向大家介绍JQuery EasyUI 加载两次url的原因分析及解决方案,包括了JQuery EasyUI 加载两次url的原因分析及解决方案的使用技巧和注意事项,需要的朋友参考一下 1、传统方式 2、原因分析及解决方案 html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url;然后又调用j

  • 本文向大家介绍MySQL 出现错误1418 的原因分析及解决方法,包括了MySQL 出现错误1418 的原因分析及解决方法的使用技巧和注意事项,需要的朋友参考一下 MySQL 出现错误1418 的原因分析及解决方法 具体错误:  使用mysql创建、调用存储过程,函数以及触发器的时候会有错误符号为1418错误。 ERROR 1418 (HY000): This function has none

  • 本文向大家介绍Android中Memory Leak原因分析及解决办法,包括了Android中Memory Leak原因分析及解决办法的使用技巧和注意事项,需要的朋友参考一下 在Android开发过程中,我们经常碰到的情况就是在我们不清楚为什么情况下,程序突然出现Crash了。其中有一类日志相信大家都经常碰到过,这类日志就是OOM相关的日志。这类日志除了我们知道的Bitmap操作的时候会经常导致,

  • 本文向大家介绍javascript跨域原因以及解决方案分享,包括了javascript跨域原因以及解决方案分享的使用技巧和注意事项,需要的朋友参考一下 产生跨域问题的原因 跨域问题是浏览器同源策略限制,当前域名的js只能读取同域下的窗口属性。 跨域问题产生的场景 当要在在页面中使用js获取其他网站的数据时,就会产生跨域问题,比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口时以及hy