ブラウザウィンドウにフォーカスがあるかどうかを検出し、フォーカスされていない場合はajax呼び出しを強制終了しようとしています。基本的に、ユーザーが一定時間アイドル状態になると、ajaxキルは終了しますが、ブラウザーがフォーカスを合わせると再開します。Facebookがやっていると思います。
これが私が持っているものです:
$(document).ready(function(){
// window.onunload = function(){alert('closing')};
// mainmode();
$('#alertbox').click(function(){
$('#alertbox').slideUp("slow");
});
setInterval(function(){
// Check focal point
var window_focus = true;
$(function() {
$(window).focus(function() {
window_focus = true;
console.log('Focus');
});
$(window).blur(function() {
window_focus = false;
console.log('Blur');
});
});
if(window_focus == true){
console.log('in focus');
waitForMsg();
}else{
console.log('out of focus');
}
}, 5000);
});
waitformsgは私のajax呼び出しです。5秒間隔を設定したところ、テストブラウザでおかしくなっているようです。これもおそらく最善の方法ではありません。
また、それは私のajax呼び出しを殺すのではなく、代わりにそれを乗算しているようです。xhr.abort()を使用する必要がありますか?
助けてくれてありがとう。