为什么客户端渲染不利于 SEO
-
「客户端渲染」网页内容是空的,内容通过解析执行 js 脚本才能渲染出来网页内容;
-
「服务端渲染」可以清晰的看到页面的内容,根据内容可以更有利于搜索;
为什么客户端渲染首屏渲染慢
-
服务端渲染,发现服务端渲染请求很简单 html 直出,浏览器加载到文档就可以开始渲染;
-
而客户端渲染,至少要经历三次 http 请求周期:
- 第一次是页面的请求;
- 第二次是 js 对应的请求;
- 第三次动态数据的请求;
现代化的服务端渲染
也叫「同构渲染」,所谓的同构指的就是
服务端构建渲染 + 客户端构建渲染
:
-
客户端发起请求;
-
服务端渲染首屏内容 + 生成客户端 SPA 相关资源;
-
服务端将生成的首屏资源发送给客户端;
-
客户端直接展示服务端渲染好的首屏内容;
-
首屏中的 SPA 相关资源执行之后会激活客户端应用;
-
之后客户端所有的交互都由客户端 SPA 处理;
同构渲染应用的问题
-
开发条件有限;
- 浏览器特定的代码只能在某些生命周期钩子函数中使用;
- 一些外部扩展库可能需要特殊处理才能在服务端渲染应用中运行;
- 不能在服务端渲染期间操作 DOM;
- 某些代码操作需要区分运行环境;
- …
-
设计构建设置和部署的更多要求;
- 客户端渲染:仅构建客户端即可,可以部署在任意 web 服务器中;
- 同构渲染:需要构建两个端,只能部署在 Node.js Server;
-
更多的服务器端负载:
- 在 Node 中渲染完整的应用程序,相比仅仅提供静态文件的服务器需要大量 CPU 资源;
- SSR 占用更多的 CPU 和内存资源,如果应用在高流量环境下使用,需要准备相应的服务器负载;
- 需要更多的服务端渲染优化工作处理;
-
…
服务端渲染使用建议
-
首屏渲染速度是否真的重要;
-
是否真的需要 SEO;
手写 MVVM👉 整体分析、代码实现
上一篇