通过双向绑定限制页面重新渲染

Limit re-rendering of page through two-way binding

我正在为主页上的博客-post编写编辑器。

我正在使用 Ember 的 textarea-helper 将我的模型的属性绑定到编辑器。在此文本区域中,我在降价中键入 post。下面将自动呈现输出(就像 Whosebug 编辑器所做的那样)。

我的 markdown 还包含来自 YouTube 或 Soundcloud 等页面的媒体嵌入,这使得重新呈现非常缓慢。

如何将页面重新呈现限制为每五秒仅点赞一次?

您可以使用 Ember.run.throttle 来避免过于频繁地更新渲染标记。

示例(另见 JsBin):

App.IndexController = Ember.Controller.extend({
  markdown: 'this is markdown',
  rendered: '',

  markdownChanged: function() {
    Ember.run.throttle(this, this.renderOutput, 5000);
  }.observes('markdown').on('init'),

  renderOutput: function(){
    this.set('rendered', 'I RENDERED THIS: ' + this.get('markdown'));
  }
});