Ember.js 遇到大型数据集时余烬窒息

Ember.js 遇到大型数据集时余烬窒息,ember.js,ember-data,Ember.js,Ember Data,正在寻找解决大型数据集导致的问题的方法,该问题迫使Ember在尝试处理数据时锁定浏览器 对于分页,我使用tchak的handy对从后端API加载的大约13000多个对象进行分页 余烬数据对象包含一个ID、一个文本属性和几个数字属性 问题是,浏览器需要将近一分钟的时间才能完成数据处理,同时导致浏览器无法使用。Firefox甚至发出警告说脚本正在使用所有浏览器资源,并建议终止脚本 我已经编写了自己的分页mixin,它按范围请求对象,即条目10-25,它通常运行良好,除了一个严重的限制:排序。要对数据

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

对于分页,我使用tchak的handy对从后端API加载的大约13000多个对象进行分页

余烬数据对象包含一个ID、一个文本属性和几个数字属性

问题是,浏览器需要将近一分钟的时间才能完成数据处理,同时导致浏览器无法使用。Firefox甚至发出警告说脚本正在使用所有浏览器资源,并建议终止脚本

我已经编写了自己的分页mixin,它按范围请求对象,即条目10-25,它通常运行良好,除了一个严重的限制:排序。要对数据进行排序,我需要向后端发出额外的请求,并重新加载对象,即使其中一些对象已经加载

我希望能够预先加载所有内容,以简化排序过程,而无需对后端API进行额外请求。我正在寻找如何解决这个问题的指导,但我愿意接受完全不同的方法

如果没有其他问题,那么在尝试将所有13k对象加载到ArrayController时,是否可以减少Ember在浏览器上的资源占用


我正在使用Ember 1.0.0-pre2和最新的Ember数据(目前处于修订版10)

后端是Rails 3.2.8



更新我通过将数据加载到除
内容
以外的ArrayController属性中,避开了这个问题。这使加载时间从一分钟减少到几秒钟。然后,我将请求的项目数切片并将其加载到内容中。这适用于任何数量的项目,但代价是无法轻松对数据进行排序。

我建议您看看。演示显示了一个包含500000条记录的表,运行速度非常快。深入研究源代码可能会有所帮助。

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

+1。问题很可能是您试图一次渲染所有内容。我只渲染了15-20个项目,但如果您看到我上面的更新,则问题似乎与ArrayController处理内容的方式有关。我刚才回答了自己关于获取一系列数据的问题。比如说一个月或一个财政季度,你能分享一些关于解决方案的代码吗?我面临着同样的问题,这将是一个很大的帮助。