ホームページ  >  記事  >  ウェブフロントエンド  >  ページを閉じる理由と解決策 window.location イベントが実行されない_JavaScript スキル

ページを閉じる理由と解決策 window.location イベントが実行されない_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 16:38:001569ブラウズ

1. 問題の説明:

Widow.location = function() は JS で定義されており、ページが閉じられると、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. 問題の原因:

SOAPClient.invoke() メソッドが logout() で呼び出されます。パラメーターは true です。これは、フロントエンドとサーバーが非同期方式で通信していることを意味します。つまり、フロントエンドが応答を受信して​​いないことを意味します。この質問では、フロントエンドが logout() を実行するときに、サーバーの応答を待つ前にページを閉じているため、logout() が実行されていないように見えます。

3. 解決策:

フロントエンドとサーバー間の通信方法を同期に変更する、つまり、SOAPClient.invoke() メソッドの true を false に変更すると、問題は解決します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。