我正在尝试检测浏览器窗口是否处于焦点,如果不是,则尝试终止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()?
感谢您的帮助。
答案 0 :(得分:0)
修改后的代码;
$(document).ready(function(){
// window.onunload = function(){alert('closing')};
// mainmode();
$('#alertbox').click(function(){
$('#alertbox').slideUp("slow");
});
// Check focal point
var window_focus = true;
$(window).focus(function() {
window_focus = true;
console.log('Focus');
});
$(window).blur(function() {
window_focus = false;
console.log('Blur');
});
setInterval(function(){
if(window_focus == true){
console.log('in focus');
waitForMsg();
}else{
console.log('out of focus');
}
}, 5000);
});