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

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
javascript location、window.location.href、window.location、window.location.hash、window.location.host,以便于您获取更多的相关知识。

时间: 2025-01-31 02:09:56

关闭页面时window.location事件未执行的原因分析及解决方案_javascript技巧的相关文章

关闭页面window.location事件未执行的原因及解决方法_javascript技巧

1.问题描述: JS中定义widow.location = function(),页面关闭时,logout()函数未执行. window.onunload = function() { logout(); } function logout(reqParam, callback){ var userManageServiceUrl = "http://" + getServerAddr() + "/axis2/services/UserManageService";

页面加载完后自动执行一个方法的js代码_javascript技巧

1.在body中用onload: <body onload="myfunction()"> 2.在脚本中用window.onload: <script type="text/javascript"> function myfun() { alert("this window.onload"); } /*用window.onload调用myfun()*/ window.onload=myfun;//不要括号 </scr

关闭页面时触发事件

问题描述 <scriptlanguage="javascript">window.onbeforeunload=function()//只要点击就关闭{//event.clientX鼠标光标X坐标//document.body.clientWidth窗体工作区宽度//event.clientY鼠标光标Y坐标//event.altKey是否按下alt键if(!(event.clientX>document.body.clientWidth&&event.

关闭浏览器时提示onbeforeunload事件

 这篇文章主要介绍了关闭浏览器时提示onbeforeunload事件,有需要的朋友可以参考一下 onbeforeunload事件 它是这样用的: 代码如下: <script language="javascript">       g_blnCheckUnload = true;       function RunOnBeforeUnload() {               if (g_blnCheckUnload) {         window.event.re

如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”

 这篇文章主要介绍了如何实现chrome浏览器关闭页面时弹出"确定要离开此面吗?"的方法以及相关资料,需要的朋友可以参考下     一.避免弹出提示框 在网上搜了很多,答案大都是设置window.onbeforeunload=null ,但是试用之后无效. 这个问题放了两天之后返回来再次想,终于找到了答案,在此和大家分享一下: 解除jquery离开页面弹出提(1) 先解除绑定在设置弹出内容为null.   代码如下: $(function(){ $(window).unbind('be

JS关闭窗口时产生的事件及用法示例_javascript技巧

本文实例讲述了JS关闭窗口时产生的事件及用法.分享给大家供大家参考,具体如下: /************ 关闭窗口,提交评价 **************/ window.onbeforeunload = function(){ var pageWidth = Math.max(window.top.document.body.scrollWidth, window.top.document.documentElement.scrollWidth); var pageHeight = Math

js 实现在离开页面时提醒未保存的信息(减少用户重复操作)_javascript技巧

Javascript代码 复制代码 代码如下: //在离开页面时判断是否有未保存的输入值 var hasSaved = false;//是否有输入的内容未保存标志,初始值为false function CheckUnsave(){ if(hasSaved==false){ alert("您上传的东西尚未保存,请保存后再离开页面"); return false;} //return true; //不能加这个语句 } //保存了则改变状态 function ChangeState() {

location对象的属性和方法应用(解析URL)_javascript技巧

location对象提供了很多属性和方法用来解析URL. 复制代码 代码如下: <head> <title></title> <script type="text/javascript"> var uristr = window.location.search.substr(1); var array = uristr.split('&&'); for (var i = 0; i < array.length; i+

微信分享应用未审核什么问题 微信未审核应用原因分析

微信分享应用未审核怎么回事? 点击右上角[分享给朋友]然后会弹出一个"未审核应用",这个问题出现在iphone手机中也就是ios系统上. ios7手机中会看到右上角的"-"也是灰色的不能使用. 请问如果将"未审核应用"消除,变更为比如微网站的标题,需要办理什么前置手续还是接口上要再作处理? 微信聊天未审核应用原因分析: 这个是需要审核了具体什么内容会导致需要官方审核这个我们也不清楚你可以问一下官方客服吧.