我正在尝试检测浏览器窗口是否处于焦点状态,如果不是,则终止 ajax 调用。基本上,如果用户闲置了一段时间,那么 ajax kills 就会死掉,但是一旦浏览器成为焦点,它就会重新开始。我认为 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() 吗?
谢谢您的帮助。