> 웹 프론트엔드 > JS 튜토리얼 > 페이지를 닫는 이유 및 해결 방법 window.location 이벤트가 실행되지 않음_javascript 기술

페이지를 닫는 이유 및 해결 방법 window.location 이벤트가 실행되지 않음_javascript 기술

WBOY
풀어 주다: 2016-05-16 16:38:00
원래의
1632명이 탐색했습니다.

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입니다. 이는 프런트엔드와 서버가 비동기 방식으로 통신한다는 의미입니다. 즉, 프런트엔드가 응답을 받지 못했습니다. 이 질문에서는 프런트 엔드가 logout()을 실행할 때 서버의 응답을 기다리기 전에 페이지를 닫았기 때문에 logout()이 실행되지 않은 것으로 나타납니다.

3.

프런트엔드와 서버 간의 통신 방식을 동기화로 변경 즉, SOAPClient.invoke() 메서드에서 true를 false로 변경하면 문제가 해결됩니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿