【问题标题】:How does Ember Data manage large amount of records?Ember Data 如何管理大量记录?
【发布时间】:2015-09-01 22:02:33
【问题描述】:

我一直在使用 Ember Data,我正在尝试理解一些概念。我有一个非常繁重的数据密集型应用程序,我的后端有返回大量记录的端点。

所以,基本上我有类似this.store.findAll('places') 的路线,它可以返回数千个地方,每个地方都有几个文本密集型字段,如servicesdescription。 这只是其中一种资源,还有其他一些资源可以处理这么多的数据。

我主要担心应用程序达到某种限制或变得无响应。所以我的问题是:Ember Data 如何管理大量记录?是否有任何最佳实践来处理这类场景?

【问题讨论】:

  • 这个问题的答案确实是任何关于如何处理客户端上的大型数据集的问题的答案:对数据进行分页。
  • @GregBurghardt 假设客户端和服务器在同一主机上运行(可能是带有 sqlite 数据库的电子桌面应用程序),因此带宽不是问题,也许我不需要分页ember 对存储大量记录有硬性限制吗?

标签: ember.js ember-data


【解决方案1】:

Ember Data 如何管理大量记录?

与处理少量记录的方式相同。如果您尝试加载/获取大量记录,它不会对性能做任何特别的事情。你需要自己处理。

是否有处理此类场景的最佳实践?

很遗憾,没有。某种形式的分页确实是实现这一目标的唯一方法。但正如您在this thread 中看到的那样,有很多关于“最佳”方法的讨论。有用于处理这种情况的适配器和插件,以及旨在使其变得简单的服务器端样板。但是确实没有使用 Ember Data 进行分页的规范方法。

在我看来,处理大量数据的最佳方式是设计一个查询端点并在您的服务器上实现它,自己处理所有事情。这将是最适合您的应用程序并且最容易理解的。如果这听起来很复杂,那是因为它是。数据集分割/分页不是一个简单的问题,你肯定会在这个过程中遇到问题。这就是为什么还没有公认的最佳做法的原因。

更新:Javier Cadiz 在 cmets 中提到了 JSON API,所以我想我会提到它。 JSON API 似乎确实是 Ember Data 的新事实标准,它使用了specifiy a pagination 方法。然而,JSON API 是相当新的,还没有被广泛采用。我相信直到最近 Ember Data 才切换到 JSON API 适配器作为其默认适配器。使用这种分页很可能需要您遵守整个 API,而不仅仅是分页方面。 (尽管您总是可以从中窃取某些想法。)因此,我不确定是否将其称为最佳实践。

底线:JSON API 分页方式可能是未来的方式,但目前还不是很流行。 (虽然这只是我根据我所见/所读的意见。没有说有多少人在私下使用它。)

【讨论】:

  • JSON API 规范是否有助于解决这个问题?
  • 这是一个很好的建议。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多