사용자가 브라우저 창을 닫을 때 서버에 알리고 싶습니다. 창 언로드시 요청을 보내지 않아도됩니다.
나는 그것이 그 아마 설명서에 말했다되어, 사실에도 불구하고,$(window).bind("beforeunload", function() {
$.get("${contextPath}/notify?direction=logout");
});
및
$(window).unload(function() {
$.get("${contextPath}/notify?direction=logout");
});
및
$(window).unload(function() {
$.ajax({
url: "${contextPath}/notify?direction=logout"
});
});
하지만 둘 다 일 잘 모든 시도 할까요.
파이어 폭스에서는 창이 닫힐 때만 알림이 표시되지만 새로 고침 할 때 알림이 없습니다. 크롬에는 나도 마찬가지입니다.
Firebug 또는 Chrome 개발자 도구에서이 스크립트를 추적하려고 시도했지만 추적 할 경우 작동하기 시작했습니다. 그래서 창을 닫거나 탐색하기 전에 요청을 보낼 시간이 없기 때문에 정상적으로 작동하지 않는다고 생각합니다.
사실인가요? 내 일을 완수하는 방법?
해결이는 일 : 자바 스크립트가 차단 된 페이지 언로드에서 실행하는 경우 사용자가 페이지를 종료하는
$(window).bind("beforeunload",
function() {
$.ajax({
async: false,
url: 'notify'
});
}
);
첫 번째 생각 : AJAX는 작업을위한 잘못된 도구입니다. 당신은 SJAX (동기식)를 사용해야합니다. AJAX는 정의상 GUI 스레드를 해제하여 처리를 계속합니다 [이 경우에는 언로드]. – Shad
이 답변을 확인하십시오 : http://stackoverflow.com/a/9234785/252780 –