8

正在寻找由大型数据集导致的问题的解决方案,迫使 Ember 在尝试处理数据时锁定浏览器。

对于分页,我使用 tchak 方便的分页 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。


更新我通过将数据加载到 ArrayController 属性而不是content. 这使加载时间从超过一分钟减少到只有几秒钟。然后,我将请求数量的项目切片并将其加载到内容中。这适用于任何数量的项目,但代价是无法轻松对数据进行排序。

4

2 回答 2

5

我建议你看看Ember Table。该演示显示了一个包含 500 000 条记录的表,并且运行速度非常快。挖掘源代码可能会有所帮助。

于 2012-12-29T19:24:06.040 回答
0

您不能从处理排序的数据库中查询视图吗?在查询字符串中传入排序条件 ?sortBy=name&sortAsc=true

于 2013-04-26T13:38:25.067 回答