브라우저에 초점이 맞았고 마우스가 움직이면 AJAX를 멈추는 깔끔한 방법을 만들려고합니다. 그래서 여기에 내가 원하는 것이 있습니다 :블러 (blur) 함수 내부에서 Mousemovent를 감지합니다.
사용자가 브라우저의 다른 탭으로 이동하거나 창을 최소화하거나 웹 응용 프로그램이 아닌 다른 곳으로 이동하면 1 분 안에 AJAX 호출을 중단 시키길 원합니다. 사용자가 웹 앱에서 마우스를 아무 곳으로나 움직이면 사용자는 앱에 "집중"한 것으로 간주하여 Ajax 호출을 계속 진행해야합니다. "timeout"부분을 처리하기 위해 "st"라는 시간 초과를 설정했지만 마우스 탐지기를 추가하는 것은 조금 더 발전되었습니다.
var window_focus = true;
$(document).ready(function() {
$('#alertbox').click(function() {
$('#alertbox').slideUp("slow");
});
// Check focal point
$(window).focus(function() {
if (window_focus) {
return
}
window_focus = true;
waitForMsg();
}).blur(function() {
if (!window_focus) {
return
}
console.log('Init Suspension...');
// Set Timeout
$(function() {
st = setTimeout(function() {
clearTimeout(setTimeoutConst);
window_focus = false;
document.title = 'Timed Out | WEBSITE';
console.log('Suspended');
}, 60000);
});
});
waitForMsg();
});
내가 이런 식으로 추가하려고 거라고 :
$(function() {
$().mousemove(function() {
console.log('Reinitialize');
clearTimeout(st);
waitForMsg();
});
});
을하지만 그것은 작동하지 않았다 여기에 내가 가진거야. 당신의 도움을 주셔서 감사합니다.
당신은'$ (문서) .mousemove' 시도가 아약스 호출 방법이 jsfiddle
를 시도? 처음에 그 mousemove를 취소 하시겠습니까 아니면 그냥 미쳐 버리시겠습니까? – Popnoodles
@popnoodles 나는 그것을 시도하지 않았다. 나는 "st"타임 아웃 타이머를 취소하고 일반처럼 ajax 호출을 계속하고 싶다. 그것이 마우스 움직임을 감지하면, 나는 그것이 초점에 있다고 생각하는쪽으로 되돌아 가기를 원합니다. – greycode
@popnoodles 기본적으로 다른 창으로 간 다음 다시 그 창으로 돌아갈 때까지 다시 초점이 맞지 않을 것이라고 생각합니다. 마우스가 움직이는 것을 감지하면 초점이 맞았다 고 생각하고 싶습니다. – greycode