0

嗨,我正在开发一个需要一致间隔的 Web 应用程序。但是我注意到,当窗口失去焦点时,间隔将会消失。

我想知道是否可以嵌入一个设置无限循环的闪存来解决这个问题?

4

2 回答 2

0

你不需要flash,你应该可以稍微修改你的动画代码,你只需要做这样的事情

var $div = $('div');

var a = 0;

setInterval(function() {
    a++;
    $div.stop(true,true).css("left", a);
}, 1000 / 30);

非活动浏览器选项卡缓冲一些 setInterval 或 setTimeout 函数。

stop(true,true) 将停止所有缓冲事件并立即执行最后一个动画。

window.setTimeout() 方法现在限制为在非活动选项卡中每秒发送不超过一个超时。此外,它现在将嵌套超时限制为 HTML5 规范允许的最小值:4 毫秒(而不是过去的 10 毫秒)。

这里这里获取的答案

于 2013-05-16T12:25:27.900 回答
0

最后我发现有两种方法可以解决这个问题。首先是使用 HTML 5 web workers。但是,在这种情况下不支持 ie。

第二种方法是将间隔计时器限制为不少于 1000 毫秒。这是因为间隔不会消失,而是最多停留在 1 秒。任何比这更高的频率都会被缓冲,这会导致问题。

于 2013-05-20T13:30:11.943 回答