在我正在处理的ember.js应用程序(ember v1.8.0-beta1,ember-cli)中,我有一个页面,其中包含一个简单的注册类型表单,其中包含一个国家/地区选择下拉列表。问题在于,由于此字段具有相对大量的选项(确切地说是244),因此存在大的渲染性能命中,当将该选择字段添加到模板时,该路径将花费几乎整整一秒的时间来渲染。 / p>
我觉得这种减速是因为Ember必须为select中的244 <option>
个视图中的每一个创建绑定,所以在我找到的this cookbook entry之后,我试图创建一个未绑定的版本Ember.Select
喜欢这样:
应用程序/视图/未结合-select.js
import Ember from 'ember';
export default Ember.Select.extend({
optionView: Ember.SelectOption.extend({
templateName: 'unbound-option'
})
});
应用程序/模板/未结合-option.hbs
{{unbound view.label}}
应用程序/模板/ signup.hbs
...
{{view "unbound-select" value=country content=countries}}
...
然而,这样做而不是使用常规Ember.Select
似乎对渲染速度没有任何帮助。在我的实现中是否有某些东西可能导致所有<option>
仍被绑定?
答案 0 :(得分:0)
看到Ember.Select
的未绑定扩展名同样缓慢,我冒昧地认为Ember.Select
速度很慢。来自the docs,最后一段:
选择视图功能非常丰富,在渲染多个项目时可能会表现不佳。因此,它尚未像其他输入一样转换为组件或帮助器。