我可以以60fps的速度运行angular's digest loop来显示快速计时器吗?

Can I run angular's digest loop at 60fps to display a fast timer?

本文关键字:显示 loop digest 计时器 60fps 速度 运行 angular 我可以      更新时间:2023-09-26

我有一个计时器显示在我的网站,我想在我的角控制器的值。目前我使用以下代码:

var interval=1.0 / 60.0;
var score_div = $("#score_div");
setInterval(function(){
    score += interval;
    score_div.text(score);
}, interval * 1000);

在60FPS下角能处理消化吗?不然我怎么能让计时器更新得足够频繁呢?这是一个非常简单的变量,使用jQuery或其他工具,我可以在Interval函数期间自己更新DOM。

是否有一种"有棱角"的方式来完成这一点?

如果不需要,就不要用angular做DOM操作,把它留给angular,只需更新你的模型即可。你可以创建一个控制器/指令,并使用$interval服务,这样angular就会知道你的作用域变量score的变化。例子:

app.controller('MainCtrl', ['$scope', '$interval', function($scope, $interval) {
  var interval=1.0 / 60.0;
  $scope.score = 0;
  $interval(function(){
      $scope.score += interval;
  }, interval * 1000);
}]);

,你的标记是

  <body ng-controller="MainCtrl">
    <!-- You don't actually need an ID here for it to work -->
    <div id="#score_div">{{score}}</div>
  </body>

看到恰好