服务端渲染(ssr)
什么是服务端渲染
服务端将完整的页面 HTML
输出到客户端显示,与 SPA
(Single-Page-Application)使用 js
渲染页面不同。
为什么使用服务端渲染
- 更好的
SEO
- 更快的内容到达时间
预渲染(prerendering)
什么是预渲染
无需使用 Web
服务器实时动态编译 HTML
,而是在构建时(build time
)就生成静态 HTML
文件,直接把没有动态内容的页面预先构建好。
为什么使用预渲染
设置预渲染更简单,并可以将我们的前端做为一个完全静态的站点。例如本博客 Hexo
。
如果使用
webpack
,可以使用插件prerender-spa-plugin
轻松地添加预渲染。
二者区别(适用场景)
- 预渲染的使用场景更多是我们所说的静态页面的形式。服务端渲染适用于大型的、页面数据处理较多且较为复杂的、与服务端有数据交互的功能型网站,一个明显的使用场景就是电商网站。
- 预渲染对部署目标服务器没有额外要求,而服务端渲染,至少需要服务端有代码的执行能力以执行生成逻辑。
- 与上一条区别类似的,预渲染对内容生产者有一定使用要求因为生成代码的步骤往往也由他们完成,比如
Jekyll
需要Ruby
环境。 - 预渲染比较难加入观众互动机制,比如用户评价、提问,需要通过一些额外方式整合,而服务端渲染对处理文章内容和用户互动内容的逻辑实际是一致的,都是将内容嵌入特定的布局模版然后反馈结果给客户端。