關(guān)閉頁(yè)面window.location事件未執(zhí)行的原因及解決方法
1、問(wèn)題描述:
JS中定義widow.location = function(),頁(yè)面關(guān)閉時(shí),logout()函數(shù)未執(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、問(wèn)題原因:
logout()中調(diào)用SOAPClient.invoke()方法,參數(shù)為true,代表前端和server是異步方式通信,即前端還未接收到server端的響應(yīng),便已經(jīng)執(zhí)行后面的語(yǔ)句了,在該問(wèn)題中表現(xiàn)為前端執(zhí)行l(wèi)ogout()時(shí)還未等到server的響應(yīng),便已經(jīng)將頁(yè)面關(guān)閉了,所以表現(xiàn)為logout()未執(zhí)行。
3、解決方法:
將前端和server通信方式改為同步,即將SOAPClient.invoke()方法中true改為false,問(wèn)題得到解決。
相關(guān)文章
echarts自定義tooltip中的內(nèi)容代碼示例
在ECharts中,通過(guò)formatter函數(shù)自定義圖例樣式,可以實(shí)現(xiàn)更靈活的圖表展示,滿足特定的視覺(jué)需求,這篇文章主要介紹了echarts自定義tooltip中內(nèi)容的相關(guān)資料,需要的朋友可以參考下2024-10-10
Bootstrap實(shí)現(xiàn)下拉菜單多級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Bootstrap實(shí)現(xiàn)下拉菜單多級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
javascript實(shí)現(xiàn)簡(jiǎn)單打字游戲
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)簡(jiǎn)單打字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
js中的eval()函數(shù)把含有轉(zhuǎn)義字符的字符串轉(zhuǎn)換成Object對(duì)象的方法
下面小編就為大家?guī)?lái)一篇js中的eval()函數(shù)把含有轉(zhuǎn)義字符的字符串轉(zhuǎn)換成Object對(duì)象的方法。小編覺(jué)的挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
javascript中call,apply,bind的區(qū)別詳解
這篇文章主要介紹了javascript中call,apply,bind的區(qū)別詳解,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下2020-12-12
用JS寫的一個(gè)Ajax庫(kù)(實(shí)例代碼)
下面小編就為大家?guī)?lái)一篇用JS寫的一個(gè)Ajax庫(kù)(實(shí)例代碼)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08

