關閉頁面時window.location事件未執(zhí)行的原因分析及解決方案
更新時間:2014年09月01日 09:44:38 投稿:hebedich
最近在做一個項目的時候,遇到個問題,就是關閉頁面時window.location事件未執(zhí)行,百思不得其解,度娘上搜了一下才知道具體原因,記錄一下
1、問題描述:
JS中定義widow.location = function(),頁面關閉時,logout()函數未執(zhí)行。
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端的響應,便已經執(zhí)行后面的語句了,在該問題中表現為前端執(zhí)行l(wèi)ogout()時還未等到server的響應,便已經將頁面關閉了,所以表現為logout()未執(zhí)行。
3、解決方法:
將前端和server通信方式改為同步,即將SOAPClient.invoke()方法中true改為false,問題得到解決。
您可能感興趣的文章:
- window.location和document.location的區(qū)別分析
- javascript 打開頁面window.location和window.open的區(qū)別
- window.location.hash 屬性使用說明
- 關于js中window.location.href,location.href,parent.location.href,top.location.href的用法與區(qū)別
- window.location.hash 使用說明
- window.location.reload()方法刷新頁面彈出要再次顯示該網頁對話框
- window.navigate 與 window.location.href 的使用區(qū)別介紹
- window.location不跳轉的問題解決方法
相關文章
JavaScript 異步調用框架 (Part 2 - 用例設計)
在上一篇文章里說到,我們要設計一個異步調用框架,最好能夠統一同步異步調用的接口,同時具體調用順序與實現方式無關。那么我們現在就來設計這樣一個框架的用例。2009-08-08

