将重新加载间隔更改为在上次重新加载后等待

时间:2013-06-23 18:04:43

标签: javascript ember.js ember-data

我的应用程序每500毫秒重新加载一次数据。如何将代码更改为每500毫秒不重新加载,但是在上次重新加载后等待500毫秒以触发新代码?

App = Ember.Application.create({
  ready: function() {
    var switchboard = App.Switchboard.find(switchboard_id);
    setInterval(function() {
      switchboard.reload();
    }, 500);
  }
});

1 个答案:

答案 0 :(得分:0)

我刚刚做了类似的事情。您应该在路线上使用activate属性(http://emberjs.com/api/classes/Ember.Route.html#method_activate)。

结帐此拉取请求:https://github.com/chrmod/rowmark/pull/2/files

一些例子:

App.NoteRoute = Ember.Route.extend({
  activate: function() {
    this.interval = setInterval(function() {
      this.get('controller').set('toSave', true);
    }.bind(this), 5000);
  }
})

更新

我明白你错了。对不起。

首先,您需要知道来自findEmber Model的{​​{1}}返回Ember Datahttp://emberjs.com/blog/2013/05/28/ember-data-0-13.html

我认为你可以做到这一点来实现:

promises

首先,我们运行App = Ember.Application.create({ ready: function() { var switchboard; setInterval(function() { switchboard = App.Switchboard.find(switchboard_id).then(function(){ setTimeout(function(){}, 499); }); }, 1); } }); 以在无限setInterval中运行此功能。接下来在每次循环迭代中,我们找到loop,当Switchboard从外部服务器加载那些传递给Ember data的{​​{1}}的数据。这个功能只需等待499ms:)

相关问题