DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 關閉頁面window.location事件未執行的原因及解決方法
關閉頁面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,問題得到解決。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved