【发布时间】:2015-06-02 09:57:10
【问题描述】:
我有一个选择框,其中包含 350-400 <option> 元素的列表。元素数据通过 ajax 加载。加载正常。
但是当我 ember 尝试创建列表时。浏览器因 RAM 高而挂起,CPU 使用最终无响应的脚本错误显示在浏览器中。给它足够的时间渲染。
ember 似乎也没有真正缓存渲染的元素,因为每次我回到同一页面时,问题都会重复。
那么,有什么办法可以提高视图select 的性能?
选择视图的示例代码:
{{view "select" prompt="-- select --" content=controllers.application.companies
optionValuePath="content.id" optionLabelPath="content.name_abbr"
classNames="form-control" value=dailyId}}
我知道其中一种选择是使用文本框的预输入脚本。但我现在想将其保存为 B 计划。
【问题讨论】:
-
我之前已经通过创建一个扩展它的组件来处理这个问题,但是我摆脱了模板和所有东西,并实现了
render方法,“用我自己的双手”构建 html 类型的东西.用大约 500 个选项在 40 毫秒内完成。我不知道该代码保存在哪里(用 select2 代替了我的),但我会尝试在此处查找并链接。 -
我的建议基于过去的经验:避免 Ember 的
select视图。它很慢,很笨重,而且已经过时了。只需编写您自己的组件,这将是非常值得的。 -
谢谢大家!我将尝试编写一个组件,看看它是如何执行的。 @MilkyWayJoe 也会关注这个 Q 以获得您的进一步回复
标签: javascript ember.js