如何定期更新Ember的模型(例如在setInterval中)?

Edy*_*rne 18 javascript ajax jquery web-applications ember.js

我有一个Ember应用程序,其模型来自Ajax调用.第一个调用工作得很好,我有一个模型钩子Ember.Route返回一个Ajax调用的promise,它检索要显示的数据.

但是这个数据在后端经常发生变化,我想让webapp定期轮询服务器,比如每5秒轮询一次,然后更新或甚至更好地将模型数据与新检索的数据完全交换.

用Ember.js做这件事的合适方法是什么?我是Ember的新手,所以我有点迷失了.

cho*_*per 33

我认为这是一个很好的用例Ember.run.later,它限制了函数调用的频率.

您可以只为模型添加刷新,类似于:

App.Model = DS.Model.extend({
   poll: function() {
      var _this = this;
      Ember.run.later( function() {
         _this.reload(); 
         _this.poll();
      }, 500);
   }.observes('didLoad'),
});
Run Code Online (Sandbox Code Playgroud)

  • 我认为使用`Ember.run.later`会更合适.对油门的调用不会限制任何东西.(要使节流有效,必须使用函数引用,而不是匿名函数.) (5认同)