1

我正在为肉桂开发一个基于 HTML5/JS 的自定义屏幕保护程序:-D。

它移动了一些东西。与 WinXP 时代的默认 windows-flag 屏幕保护程序非常相似。(对于不记得的人:每隔几秒钟就会将一张微小的静态图片移动到另一个位置)。

哪种循环方法消耗更少的资源和更少的电池电量?

requestAnimationFrame:如果页面不可见,这些循环通常会在几秒钟后自动冻结。如果屏幕进入节能模式就可以了。但它以 60hz 运行。添加了一个额外的计时器,因此只有每 n 次。调用代码已执行(如果自上次操作后经过 n 秒,则再次执行...)。

var loop = function(){
  requestAnimationframe(loop);
  if (time - lasttime > 5000) {
     lasttime = time;
     blabla();
  }
};
loop();

setTimeout:即使页面不可见,这些循环也会保持运行。只有当屏幕保护程序被取消时它才会停止。

var loop = function(){
  setTimeout(loop, 5000);
  blabla();
};
loop();

blabla() 确实通过更改 DOM 来控制动画。

示例是简化的伪代码。

在这种情况下我应该选择哪一个?

它不适用于浏览器,而是用于肉桂 webkit 屏幕保护程序。

4

0 回答 0