Ember.js嵌套视图变得非常慢

时间:2013-02-20 15:02:22

标签: ember.js

我有一个两级深度数据模型,我想用Ember.js作为嵌套列表显示。如果我做简单的版本它表现得很好:

    {{#each parent in content}}
    <p>Table {{parent.id}}</p>
          <ul>
              {{#each item in parent.children}}
                <ul>
                  <li>{{item.position}}</li>
                  <li>{{item.position}}</li>
                  <li>{{item.position}}</li>
                </ul>
              {{/each}}
            </ul>
    {{/each}}

http://jsfiddle.net/krumpi/TdZJG/

但是,如果不是将模型的属性显示为原始字符串,而是使用嵌套的Ember.Select和Ember.TextArea视图,性能会受到很大影响,在按下加载按钮以显示页面中的控件后需要花费很多时间:

    {{#each parent in content}}
            <ul>
              {{#each item in parent.children}}
                <ul>
                  <li>pos: {{item.position}}</li>
                  <li>
                    {{view Ember.Select
                        class="input-small"
                        contentBinding="App.CheckValues"
                        selectionBinding="item.status"}}
                  </li>
                  <li>{{view Ember.TextArea class="textarea-animated" name="description" valueBinding="item.comment"}}</li>
                </ul>
              {{/each}}
            </ul>
    {{/each}}

http://jsfiddle.net/krumpi/wtwHN/

您对如何提高性能有任何建议吗?这是通过ember-1.0.0-pre4

完成的

1 个答案:

答案 0 :(得分:0)

不使用Ember select和textarea视图,而是使用普通的html标记并仅绑定属性。这些视图通常占用更多内存,并且将它们写入嵌套结构中会导致代码运行缓慢。