【发布时间】:2015-03-08 01:21:08
【问题描述】:
我有一个 Angular 应用程序从 REST 服务器提取数据。我们提取的每个项目都有一些“核心”数据——显示它的基本表示所需的数据——然后是我所说的“次要”数据、cmets 和其他用户可能想看到也可能不想看到的东西。
我正在尝试优化我们的请求模式,以最大限度地减少用户查看加载微调器所花费的总时间:一次提取所有(核心/辅助)数据会导致初始请求返回太慢,但拉动在用户请求我们尚未请求的内容之前,只有最基本的内容也会造成不必要的加载时间,至少我可以预料到他们会在忙于阅读核心内容时看到并加载它。
所以,现在我首先进行“核心内容”拉取,然后在第一次成功回调结束时启动“次要”拉取。这将是一个实验过程,但我想知道在这种情况下建立了哪些(如果有的话)最佳实践。 (我确信一个很好的答案是谷歌离开,但在这种情况下我不太确定谷歌 - 因此这个问题标题中的引号)
一个更具体的问题:我是发起许多小型 HTTP 事务还是发起一些大型事务更好?我的直觉是做很多小事情,特别是如果我可以预见到用户最有可能首先看到的一些事情并尽快加载这些事情。但这里肯定有一条渐近线吗?还是我完全不符合这种思路?
【问题讨论】:
-
更小的请求会让你更快地获取核心数据。但总的来说,您将有更多的开销和可能更多的加载时间。
-
它始终取决于请求和答案的大小。您已经说过一次提取所有数据会使用户等待很长时间。因此,您的方法似乎非常聪明,可以加载绝对必要的内容,快速显示它,然后动态添加更多数据,向用户展示他/她接下来可以期待什么。更好的搜索关键字是“渐进式加载”,在这里您还可以找到很多图像和内容的模式。
标签: javascript angularjs http