通过双向绑定限制页面重新渲染
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'));
}
});
我正在为主页上的博客-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'));
}
});