我想檢測瀏覽器窗口是否焦點並殺死ajax調用,如果它不是。基本上,如果用戶閒置了一段時間,那麼ajax殺死將會消失,但是一旦瀏覽器進入焦點,它將重新開始。我認爲Facebook做到了。Setinterval和焦點jquery
以下是我有:
$(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()嗎?
感謝您的幫助。
您可能想要查看requestAnimFrame。這些僅在瀏覽器處於焦點時才執行。 – 2013-03-13 18:05:01
@JustinThomas似乎更喜歡動畫而不是邏輯焦點/模糊操作。如果你認爲我可以使用它,你可以發佈一個答案嗎? – greycode 2013-03-13 18:11:22
這是,但沒什麼可說的,你不能用它來做你正在做的事情。 – 2013-03-14 01:34:39