基于VUE的服务器端渲染(SSR)

什么是服务器端渲染(SSR)

服务器端渲染(以下称为SSR):网页通常是通过后端路由直接给客户端的。也就是说网页的html一般是后端服务器里通过模板引擎渲染好后再交给前端的。

对于其他的效果,则是由预先写在页面里的jq,bootstrap等常见的前端框架去完成的。


什么是前端渲染

以VUE为例,我们查看生产环境的页面的html源码,会得到如下的样子:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue</title>
</head>
<body>
  <div id="app"></div>
  <script type="text/javascript" src="xxxx.xxx.js"></script>
  <script type="text/javascript" src="yyyy.yyy.js"></script>
  <script type="text/javascript" src="zzzz.zzz.js"></script>
</body>
</html>

其实,这个就是浏览器从服务器端拿到的html。这里只有空的 <div id="app"></div> 入口,以及一系列的js。其实,我们看到的页面就是由这些js渲染出来的,这就是 前端渲染


SSR VS 前端渲染

名称 SSR 前端渲染
优点 有利于SEO
对完全性要求高的页面采用SSR更保险
很大程度上缓解了服务器端的压力
可以做到无缝的页面切换体验
缺点 耦合性太强
jq时代的页面不好维护
切换页面出现白屏等
SEO不友好

为什么要用SSR

  • 更好的 SEO, 由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。
  • 更快的内容到达时间(time-to-content),特别是对于缓慢的网咯情况或运行缓慢的设备。无需等待所有的JavaScript

使用SSR需要权衡之处

  • 开发条件限制。一些浏览器特定的代码,只有在生命周期的某些钩子函数中使用;一些外部扩展库,可能需要特殊处理,才能在服务器端渲染程序中运行。
  • 涉及构建和部署的更多要求。SSR需要处于Node.js Server运行环境。
  • 更多的服务器端负载。

什么时候使用SSR

  • 主要取决于内容到达时间(time-to-content)对应用的重要程度。当内容到达时间(time-to-content)要求是绝对关键的指标时,就可以用SSR来实现最佳的初始加载性能。

SSR VS 预渲染

  • 预渲染: 无需使用web服务器动态编译HTML,在构建事简单的生成针对特定的路由的静态HTML文件
  • 何时使用预渲染:只是用于改善少数营销页面的SEO。
  • 优点:设置简单,并可以将前端作为完全静态的站点。

怎么用SSR


参考链接:

猜你喜欢

转载自juejin.im/post/5ac1f39f5188255cb07d481a