CSR:Client Side Rendering,客户端(通常是浏览器)渲染,前后端分离的场景中运用。
SSR:Server Side Rendering,服务端渲染;像之前的php、java,html代码都是通过后端动态生成的。
SSG:Static Site Generation,静态网站生成;就是整个网站的html页面及数据都是直接生成后的,比如之前的帝国cms系统,可以一键生成网站的所有静态页面。
还有另外两种技术是对ssg的补充:
ISR:Incremental Site Rendering,增量式的网站渲染,当网站很大的时候,批量全部更新对服务器消耗的资源很大,那么就可以采用一部分热点页面立即更新,非热点页面异步请求更新,最终达到全部更新的目的。
DPR:Distributed Persistent Rendering,分布式的持续渲染。
DPR 本质上讲,是对 ISR 的模型做了几处改动,并且搭配上 CDN 的能力:
1 . 去除了 fallback 行为,而是直接用 On-demand Builder(按需构建器)来响应未经过预渲染的页面,然后将结果缓存至 CDN;
2. 数据页面过期时,不再响应过期的缓存页面,而是 CDN 回源到 Builder 上,渲染出最新的数据;
3. 每次发布新版本时,自动清除 CDN 的缓存数据。
每种渲染方式都有利弊,看如何取舍
1、对于个人博客,需要搜索引擎收录的就采用ssr或ssg
2、对于系统后台,微商城等,不需要收录的,可以采用csr
3、对于大型新闻平台如搜狐、网易新浪等信息资讯平台,可以采用DPR
网友回复
python如何实现torrent的服务端进行文件分发p2p下载?
如何在浏览器中录制摄像头和麦克风数据为mp4视频保存下载本地?
go如何编写一个类似docker的linux的虚拟容器?
python如何写一个bittorrent的种子下载客户端?
ai能通过看一个网页的交互过程视频自主模仿复制网页编写代码吗?
ai先写功能代码通过chrome mcp来进行测试功能最后ai美化页面这个流程能行吗?
vue在手机端上下拖拽元素的时候如何禁止父元素及body的滚动导致无法拖拽完成?
使用tailwindcss如何去掉响应式自适应?
有没有直接在浏览器中运行的离线linux系统?
nginx如何保留post或get数据进行url重定向?