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

 更新时间:2014年09月01日 09:44:38   投稿:hebedich  
最近在做一个项目的时候,遇到个问题,就是关闭页面时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.open打开窗口被拦截的快速解决方法

    window.open打开窗口被拦截的快速解决方法

    下面小编就为大家带来一篇window.open打开窗口被拦截的快速解决方法。觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • JavaScript常用标签和方法总结

    JavaScript常用标签和方法总结

    JavaScript可以被浏览器直接解释执行,它可以更好得减小服务器压力,提高程序运行效率,下面小编通过本篇文章给大家分享JavaScript常用标签和方法,需要的朋友一起来学习吧
    2015-09-09
  • Bootstrap源码解读媒体对象、列表组和面板(10)

    Bootstrap源码解读媒体对象、列表组和面板(10)

    这篇文章主要源码解读了Bootstrap媒体对象、列表组和面板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • javascript实现异形滚动轮播

    javascript实现异形滚动轮播

    这篇文章主要为大家详细介绍了javascript实现异形滚动轮播,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • js实现一个页面多个倒计时的3种方法

    js实现一个页面多个倒计时的3种方法

    这篇文章主要为大家详细介绍了js实现一个页面多个倒计时的3种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • JavaScript 异步调用框架 (Part 2 - 用例设计)

    JavaScript 异步调用框架 (Part 2 - 用例设计)

    在上一篇文章里说到,我们要设计一个异步调用框架,最好能够统一同步异步调用的接口,同时具体调用顺序与实现方式无关。那么我们现在就来设计这样一个框架的用例。
    2009-08-08
  • javascript键盘上下键的操作(选择)

    javascript键盘上下键的操作(选择)

    不错的使用键盘上下键实现选择的代码,方便用户操作
    2008-06-06
  • HTML的select控件美化

    HTML的select控件美化

    本文主要介绍了HTML的select控件美化以及js实现select选择功能的方法步骤。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 详解Bootstrap网格垂直和水平对齐方式

    详解Bootstrap网格垂直和水平对齐方式

    网格在网页布局中是一个重点和难点,布局是网页设计的起点和基础,本文主要介绍了Bootstrap网格垂直和水平对齐方式,感兴趣的可以了解一下
    2021-07-07
  • artdialog的图片/标题以及关闭按钮不显示的解决方法

    artdialog的图片/标题以及关闭按钮不显示的解决方法

    正如标题所言不显示的原因是因其它css样式文件中包含div{ overflow:hidden; }引起的artdialog的图片以及关闭按钮不显示,具体的解决方法如下,感兴趣的朋友可以参考下哈
    2013-06-06

最新评论