音视频开发系列(18)新一代Web技术栈的演进:SSR/SSG/ISR/DPR都在做什么?

本文探讨了Web技术栈从SSR到SSG、ISR和DPR的演进,分析了各自的优缺点。SSR解决了SEO和首屏渲染问题,但带来了服务端压力;SSG通过静态化减轻服务端负担,但大型网站的全量预渲染不切实际;ISR解决了SSG的部分问题,允许增量更新,但仍存在用户体验不一致和数据延迟问题;DPR作为ISR的改进提案,旨在提供更好的缓存管理和实时渲染。文章还讨论了Jamstack技术栈在内容呈现网站的优势和未来挑战。
摘要由CSDN通过智能技术生成

在开始阅读之前,先解释一下文章里用到的英文缩写:

  • CSR:Client Side Rendering,客户端(通常是浏览器)渲染;

  • SSR:Server Side Rendering,服务端渲染;

  • SSG:Static Site Generation,静态网站生成;

  • ISR:Incremental Site Rendering,增量式的网站渲染;

  • DPR:Distributed Persistent Rendering,分布式的持续渲染。

从 SSR 到 SSG

SSR 这套技术栈相信很多人应该都非常熟悉了(如果你不熟悉的话可以先阅读相关文章),React/Vue/Angular 等等都从框架层面直接提供了支持,例如在 React 中你可以这样使用:


import React from 'react'
import ReactDOMServer from 'react-dom/server'

const html = ReactDOMServer.render(<h1>Hello, world!</h1>)

SSR 最早是为了解决单页应用(SPA)产生的 SEO、首屏渲染时间等问题而诞生的,在服务端直接实时同构渲染用户看到的页面,能最大程度上提高用户的体验,流程类似下面:

但 SSR 引入了另一个问题,既然要做服务端渲染,就必然需要一个实时在线的后台服务(通常是基于 Node.js 的服务)用来承载页面请求,那么:

 

1、需要服务器的计算资源和公网流量来部署这套服务,并且消耗的资源与页面的访问量成正相关,当页面的访问量突增时,渲染服务也需要进行扩容;

2、服务端只能部署在有限的几个地域,对于距离服务端较远的用户而言,加载速度跟静态资源的 CDN 相比,慢了一个数量级(通常是 1-5ms VS 50-100+ms);

3、日常也存在传统服务端同样的运维、监控告警等方面的负担,团队需要额外的人力来开发和维护

有没有办法解决这些问题呢?

我们重新对 SSR 进行审视,服务端渲染出的页面,逻辑上讲可以分成下面两大块:

1、变化不频繁,甚至不会变化的内容:例如文章、排行榜、商品信息、推荐列表等等,这些数据非常适合缓存;

2、变化比较频繁,或者千人千面的内容:例如用户头像、Timeline、登录状态、实时评论等。

例如,在一篇文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值