在Ember中过滤/搜索大型数据集的最佳方法是什么?

时间:2015-09-16 23:16:37

标签: ember.js

假设我正在根据searchTerm过滤25,000首歌曲的列表:

export default Ember.Controller.extend({ (...)
  matchingSongs: Ember.computed('searchTerm', function() {
    return this.get('model.songs').filter(function(song) {
       return song.get('title').indexOf(searchTerm) !== -1;
    });
  })
})

这感觉有点迟钝。这是在Ember 2.0中使用它的正确方法吗?或者我应该将搜索委托给服务器吗?

1 个答案:

答案 0 :(得分:3)

您应该考虑用户是否真的需要这样大的数据集才能在本地存储它。首先,你让他们从你的API下载一个巨大的有效载荷(考虑移动/低速连接),然后你将数据库的大量数据集暴露给外部世界。

在考虑25k歌曲时,可能会将其委托给服务器并没有明显加快速度。但是25k已经很多了。根据本地机器,过滤速度可能会有很大差异。

我肯定会将它委托给服务器。但是,如果你不能,那么你的解决方案就是好的。