网页的服务器优先呈现

Server-First Rendering of Web Pages

在网页中呈现通常有三种方法:

我对实施第三种方法很感兴趣,因为至少在理论上,它结合了两全其美:快速首次加载和 SEO 优势以及消除了每次单击按钮时对服务器请求的需求。

抛开具体框架并关注概念,我想知道以下哪项通常是最佳实践(理解每个用例都不同):

我可能错了,但似乎大多数实现都使用第一种方法(加载所有内容)而不是其他两种方法,其中 templates/JSON 在请求视图时加载。如果这确实是最佳实践,为什么它比其他两种方法更好?

谢谢。

这里有两个权衡:

1) 如果全部加载,初始加载可能会比较慢;但如果按需加载,具体操作可能会比较慢。

2) 如果加载所有内容,可能会加载客户端最终不会使用的内容,这可能会浪费时间;但是如果您只在需要时加载每个元素,您可能会额外往返服务器,这在感知性能方面可能会更加昂贵。

如何权衡这些取舍取决于很多因素,例如预期的网络延迟与带宽、应用程序的某些部分是否确实不太可能被某些用户访问等。

一般来说,如果我的应用程序已经需要 2 秒来加载,我宁愿让它花费 2.1 秒,而不是让一些后续操作也显示延迟。但是,如果我们谈论的是初始加载时间加倍的情况,也许我必须对此有不同的看法。同样,变量很多。

根据经验,我喜欢将模板、图像、脚本等捆绑到一个捆绑包中的想法 - 或者,如果有一个或多个子模块确实不会被全部使用时间,也许一个包用于核心,一个用于每个这样的子模块。