寻找大型数据集导致问题的解决方案,迫使Ember在尝试处理数据时锁定浏览器。
对于分页,我使用tchak的方便pagination mixin来对从后端API加载的大约13,000个对象进行分页。
Ember Data对象包含ID,一个文本属性和多个数字属性。
问题是在浏览器完成数据处理之前需要将近一分钟,同时使浏览器无法使用。 Firefox甚至会发出警告,指出脚本正在耗尽所有浏览器资源,并建议终止脚本。
我已经编写了我自己的分页mixin,它按范围请求对象,即项目10-25,除了一个严重的限制外,它通常运行良好:排序。为了对数据进行排序,我需要向后端发出额外的请求并重新加载对象,即使它们中的一些已被加载。
我希望能够预先加载所有内容,以简化排序过程,而无需对后端API进行额外请求。我正在寻找如何解决这个问题的指导,但我愿意接受一种完全替代的方法。
如果没有别的,是否可以减少Ember在浏览器上放置的资源占用空间,因为它试图将所有13k对象加载到ArrayController中?
我正在使用Ember 1.0.0-pre2和最新的Ember数据(目前在修订版10中)。
在后端是Rails 3.2.8。
更新我通过将数据加载到content
以外的ArrayController属性来回避这个问题。这使加载时间从一分钟以下缩短到仅几秒钟。然后我切片请求的项目数并将其加载到内容中。这适用于任何数量的项目,但代价是无法轻松对数据进行排序。
答案 0 :(得分:5)
我建议你看一下 Ember Table 。该演示显示了一个包含500 000条记录的表,并且工作速度非常快。挖掘源代码可能会有所帮助。
答案 1 :(得分:0)
您无法从数据库中查询处理排序的视图吗?传递查询字符串中的排序条件?sortBy = name& sortAsc = true