相关疑难解决方法(0)

有没有办法检测浏览器窗口当前是否处于活动状态?

我有定期执行活动的JavaScript.当用户没有看到该站点时(即窗口或选项卡没有焦点),最好不要运行.

有没有办法使用JavaScript?

我的参考点:如果您使用的窗口未处于活动状态,则Gmail聊天会播放声音.

javascript browser focus window

560
推荐指数
13
解决办法
25万
查看次数

Chrome:在后台标签中暂停超时/间隔?

我正在测试setTimeout使用测试的准确性.现在我注意到(正如预期的那样)setTimeout并不是非常准确,但对于大多数设备并不是非常不准确.现在,如果我在Chrome中运行测试并让它在后台标签中运行(那么,切换到另一个标签并在那里浏览),返回测试并检查结果(如果测试完成),它们会发生显着变化.看起来超时运行速度慢得多.在FF4或IE9中测试没有发生这种情况.

因此,看起来Chrome暂停或至少减慢了无法关注的标签中的javascript执行速度.关于这个问题在网上找不到多少.这意味着我们无法运行后台任务,例如使用XHR调用定期检查服务器,并且setInterval(我怀疑看到相同的行为setInterval,如果有时间,我会编写测试).

有没有遇到过这个?这种暂停/减速会有解决方法吗?你会把它称为一个错误,我应该这样提交吗?

javascript tabs google-chrome settimeout

117
推荐指数
4
解决办法
8万
查看次数

即使标签未处于活动状态,如何让Chrome在Chrome中以正常速度运行?

我注意到我的网络应用存在问题 - 当Chrome激活标签未设置为我的应用时,Chrome会停止运行我的JS代码,直到我再次打开标签.

我想它可以节省CPU周期.否则,如果您打开了20个选项卡并且每个选项卡都运行了代码,那么它将很快变慢.

这一切都很好,但我的应用程序要求它继续在后台运行.它可以实时更新图形并每隔几秒钟分析一次数据.

如果我移动到另一个选项卡,图形更新和分析停止(或变得非常慢 - 1秒现在像20秒).然后,当我再次关注制表符时,它恢复正常速度的更新,但由于这种奇怪的时间稀释,图形和数据分析变得奇怪.

javascript google-chrome background-process

5
推荐指数
1
解决办法
1989
查看次数

浏览器选项卡未激活时,Jquery简单滑块问题

我写了一个简单的jquery滑块,基本上可以通过3个div,隐藏一个然后淡入下一个等等使用 setInterval()

滑块适用于我的目的,但当我打开其他选项卡然后返回页面的选项卡时,所有div都可见,然后它们开始消失并再次开始工作.

这是我的jquery,里面是$(function(){}):

    $('#slideshow-next').click(function() {
    pauseSlideshow();
    nextSlide();
});

$('#slideshow-prev').click(function() {
    pauseSlideshow();
    prevSlide();
});

$('#slideshow-pause').click(function(){
    pauseSlideshow();
});

$('#slideshow-play').click(function() {
    playSlideshow();
});

interval = setInterval('nextSlide()', 4000);
});

function playSlideshow() {
    interval = setInterval('nextSlide()', 4000);
    $('#slideshow-play').hide();
    $('#slideshow-pause').show();
    nextSlide();    
}

function pauseSlideshow() {
    interval = clearInterval(interval);
    $('#slideshow-pause').hide();
    $('#slideshow-play').show();
}

function nextSlide() {

    //hide current slide
    $('#slide'+currentSlide).hide();
    // show next slide
    var next = (currentSlide+1)%3;
    $('#slide'+next).fadeIn('slow');
    currentSlide = next;        
}

function prevSlide() {

    //hide current slide
    $('#slide'+currentSlide).hide();
    // show next slide
    var …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

1
推荐指数
1
解决办法
1356
查看次数