移动设备网页浏览器在线程睡眠方面是否有任何标准?

鉴于以下jsFiddle,这是一个简单的递增计数器

http://jsfiddle.net/C93ms/6/

….如果我使用移动设备(智能手机或平板电脑为了争论)访问上面的url,柜台开始递增,如您所期望的那样,如果有JavaScript支持,那么看起来,如果我按“首页“button,或单击电源button一次以closures屏幕(但保持电话开机),脚本将停止运行,计数器停止递增。 这个我期望会发生,我很欣赏为什么在移动设备上保留电池的使用寿命非常重要,所以UI线程睡眠或类似是有道理的。 一旦你重新浏览器,计数器继续递增。 在现实世界中,使用JavaScript来确定超时期限的网站在不使用期限的情况下不会超时,我假设。

我也假设这会因设备,固件,软件而有所不同 – 我试图弄清楚的是,在移动开发框架中是否存在标准方法默认行为 ,以及在移动开发框架中是否存在任何forms的一致性设备的行为。

我不完全肯定我在这里提出了一个很好的问题 ,但是我一直在努力寻找来自SO的100%相关信息,或者我不太清楚search时需要提出的问题。

谢谢

JavaScript框架不能停止执行或更改底层JS引擎的行为。 他们将无法影响setTimeout

然而,这个行为在WindowTimers接口的 HTML5草案中是标准化的(这并不意味着它就是这样实现的)。 在那里你会发现注意事项:

这个API并不能保证定时器将按照预定时间运行。 预计由于CPU负载,其他任务等造成的延迟。

而且更加明确:

9)可选地,等待另一个用户代理定义的时间长度。

注意:这是为了允许用户代理根据需要填充超时,以优化设备的电源使用情况。 例如,一些处理器具有定时器的粒度减小的低功率模式; 在这样的平台上,用户代理可以减慢定时器以适应这个时间表,而不需要处理器使用更精确的模式及其相关的更高功率使用。

您也可以在桌面浏览器上看到这样的行为,实现4ms的最小超时(请参阅MDN上的说明 )。 所以,如果每个设备/软件/固件只认为有必要就停止这样的执行是合法的。

您可能还想看看WindowAnimationTiming草稿 。

如果您在animation/时钟/等等中使用setInterval / setTimeout ,则始终使用Date对象 (例如,通过Date.now() )来衡量实际stream逝的时间。