【问题标题】:Angular Select with Large dataset具有大型数据集的角度选择
【发布时间】:2018-05-29 06:50:54
【问题描述】:

我有一个使用 firebase 查找大型数据集的 Angular 应用程序。我必须向用户显示一个下拉菜单,其中可能有 20k 个对象。

在不损失性能的情况下完成此类任务的最佳实践是什么?

我尝试了一些第三方下拉组件,例如:ngx-selectngx-bootstrap's typeahead。一切都会导致我的网页冻结。

我正在寻找有关如何在不损失性能的情况下实现此类功能的建议。

【问题讨论】:

  • 当用户停止输入时,您必须使用带有延迟加载搜索列表的自动完成 API。
  • 看看here。它展示了@Prachi 提到的延迟加载技术。你基本上限制了进来的集合,并使用一个标志来表示集合的结束,以便获取更多信息。
  • This 可能会对您有所帮助。
  • @Prachi 就个人而言,我讨厌您所描述的大多数实施。大多数实现都尝试自动完成/实时输入正在输入的内容(即当用户输入而不是等待暂停时)。这通常会导致应用程序在必须处理大型数据集时冻结。至少,他们需要执行您提到的操作并等待用户停止输入。此外,此类实现应监控完成他们正在做的事情所花费的时间,并允许用户执行其他操作(这可能会使当前正在做的事情无效)。
  • @Makyen 您推荐的应对这种情况的方法是什么?

标签: angular firebase


【解决方案1】:

您可以使用一组预定义的选项来实现这一点。然后,用户可以单击更多以查看更多选项,然后将延迟加载,并且当他向下滚动时,可以再次延迟加载选项。 我的意思是带来大量数据,而不是一次填充整个数据。您还可以实现自动完成以方便搜索。祝你好运!

【讨论】:

    【解决方案2】:

    取决于您所谈论的表演类型。

    如果是请求时间,请不要担心,firebase 具有可扩展性且功能强大。

    如果是关于用户的网络性能,您应该只返回结果的一个子集并进行分页(firebase 允许这样做)。

    如果是关于显示结果,您可以使用分页或无限滚动。

    最后,如果您想要更完整的答案,您应该多解释一下您的问题,例如您的数据格式或您想要实现的目标(从用户的角度来看)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多