服务端渲染(SSR)
全称:Server-Side Rendering
简介:指在服务端完成页面的 html 拼接处理, 然后再发送给浏览器。
优势
1. 网络链路
- 省去了客户端二次请求的过程
- 服务端的网络环境一般优于客户端,并且内部服务器间的通讯会更快
2. 内容呈现
- 首屏的速度会更快,能够充分利用浏览器解析
HTML
的优势
3. 可访问性
- 有利于 SEO
- 移动端虽不必考虑搜索引擎爬取,但也有类似的社交分享需求,社交媒体会抓取目标页面中的图片等作为缩略信息
问题
1. 服务端的性能
服务端会存在高并发,大流量的情况。
2. 成本会增加
服务端的性能,带来的流量增加会导致页面的 💰 增加
3. 开发成本增加
- 更多的限制
- 生命周期差异(vue 里只支持
beforeCreate
和created
两个钩子函数) - 拿不到
window
、document
等 js api - 不能获取设备信息(屏幕尺寸、手机型号等)
- 异步函数不执行(
setTimeout
、Promise
等)
- 生命周期差异(vue 里只支持
- 三方库的支持性、代码兼容性
适用场景
- 强 SEO 相关的页面(spa 应用的首页)
- 偏向静态的内容展示的(商品详情、攻略、文章等)