ブラウザがフォーカスされているかどうか、およびマウスが動いているかどうかに基づいて、呼び出された AJAX を停止するためのきちんとした方法を作成しようとしています。
ユーザーがブラウザーの別のタブに移動したり、ウィンドウを最小化したり、Web アプリ以外の場所に移動したりした場合、AJAX 呼び出しを 1 分で強制終了したいと考えています。ユーザーが Web アプリ内の任意の場所にマウスを移動すると、ユーザーがアプリに「集中」していると見なされ、ajax 呼び出しが続行されます。「タイムアウト」部分を処理するために「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();
});
});
しかし、うまくいきませんでした。ご協力いただきありがとうございます。