首页 > 解决方案 > 存储与随时随地提出请求

问题描述

我正在我的门户中实现一个用于问答的 api,现在我有 2 个选项:

  1. 对 html 上的类别进行硬编码,只有当类别组件打开时(该组件将是一个扩展面板),才会从 api 加载问题,也使用请求按关键字进行搜索;
  2. 从一开始就从 api 中获取所有问题及其类别,并将其放入 rxjs 商店,列出并在组件中制作搜索机制;

那些女巫的性能会更好,为什么?

标签: angularrxjs

解决方案


这两个选项都可能有效,具体取决于您获取的数据量。

  1. 对 html 上的类别进行硬编码,只有在打开类别组件(该组件将是一个扩展面板)时,才会从 api 加载问题,也使用请求按关键字进行搜索;

类别不必硬编码;可以从远程存储中检索它们以填充到您的页面中。但是无论您是否对类别进行硬编码,加载类别的扩展问题(延迟加载)都是一个好策略。此外,每个类别加载大量问题时,您可以实现分页或虚拟滚动来解决性能问题。总之,结合延迟加载和分页(或虚拟滚动)策略应该对性能有很好的影响。最重要的是,您的搜索 api 也应该表现良好(因为它会过滤掉来自其他类别和当前类别内其他页面的问题。

  1. 从一开始就从 api 中获取所有问题及其类别,并将其放入 rxjs 商店,列出并在组件中制作搜索机制;

不需要存储在 rxjs 的商店中,因为您的问题的状态不会改变。一项服务可能就足够了。至于性能,加载很多问题可能会导致性能不佳。但更重要的是,这样的策略会让你的应用程序“冻结”(至少在下次客户端刷新浏览器之前)。


推荐阅读