【问题标题】:How to pre-load data in the background (Angular Web App)如何在后台预加载数据(Angular Web App)
【发布时间】:2021-06-17 21:09:20
【问题描述】:

我们的 (Angular) 应用使用约 15 个 API 从后端获取数据。每个 API 都用于获取特定页面的数据。不幸的是,API 不是很快,其中一些需要 5-10 秒才能返回。对于所有页面,我们获得的数据量约为 1 MB。有些页面可能不会每天都使用,但其中一些页面保证会一直使用。

考虑到所有这些,我正在考虑在应用启动时在后台预加载(几乎)所有数据,因此在加载页面时我们不会等待 5-10 秒的数据。

我想这样做的方式是:当应用程序启动时,等待 10 秒左右,然后调用所有 API 并将数据保存在存储 (NGRX) 中。不过我有几个问题:

  1. 当应用程序启动时,它会显示 Page-1,它开始使用 API-1 获取 Data-1。有时这个请求需要超过 10 秒,Get-Data-In-Background 启动并调用 API-1。先前对 API-1 的调用被取消(由浏览器),现在我们再等待 10 秒以检索 Data-1。有没有办法指定“如果有前一个请求,则不要取消”?
  2. 目前我们得到大约 1MB 的数据。如果,我不知道出于什么原因,将来应用程序将从后端获得更多数据(1GB),浏览器是否足够聪明,可以通过从磁盘保存/加载大数据来处理大数据?或者我们会陷入内存不足的情况?
  3. 这是预加载数据的正确方法吗?

【问题讨论】:

    标签: javascript angular web-applications


    【解决方案1】:

    我最终实现了一个“can-load-in-the-background-trigger”(主题),它在每个页面收到数据后触发。只有当此触发器为真时,我才会开始在后台加载其余数据。

    这样我减轻了问题#1,但如果可能的话,我仍然希望得到一些答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      相关资源
      最近更新 更多