【发布时间】:2021-06-17 21:09:20
【问题描述】:
我们的 (Angular) 应用使用约 15 个 API 从后端获取数据。每个 API 都用于获取特定页面的数据。不幸的是,API 不是很快,其中一些需要 5-10 秒才能返回。对于所有页面,我们获得的数据量约为 1 MB。有些页面可能不会每天都使用,但其中一些页面保证会一直使用。
考虑到所有这些,我正在考虑在应用启动时在后台预加载(几乎)所有数据,因此在加载页面时我们不会等待 5-10 秒的数据。
我想这样做的方式是:当应用程序启动时,等待 10 秒左右,然后调用所有 API 并将数据保存在存储 (NGRX) 中。不过我有几个问题:
- 当应用程序启动时,它会显示 Page-1,它开始使用 API-1 获取 Data-1。有时这个请求需要超过 10 秒,Get-Data-In-Background 启动并调用 API-1。先前对 API-1 的调用被取消(由浏览器),现在我们再等待 10 秒以检索 Data-1。有没有办法指定“如果有前一个请求,则不要取消”?
- 目前我们得到大约 1MB 的数据。如果,我不知道出于什么原因,将来应用程序将从后端获得更多数据(1GB),浏览器是否足够聪明,可以通过从磁盘保存/加载大数据来处理大数据?或者我们会陷入内存不足的情况?
- 这是预加载数据的正确方法吗?
【问题讨论】:
标签: javascript angular web-applications