WEB渲染模式——CSR SSR SSG ISR DPR区别

2023-11-08 13:20

本文主要是介绍WEB渲染模式——CSR SSR SSG ISR DPR区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

页面渲染

浏览器渲染页面,根据HTML文档类型声明(DOCTYPE)解析HTML和CSS,渲染步骤:解析、样式计算、元素布局、绘制、重绘重排。HTML、CSS、JavaScript是网页的三大核心技术。

HTML (Hyper Text Markup Language) 超文本标记语言。用标签描述网页结构和内容,可定义文本、图像、链接、表格、表单等网页元素的属性和布局。
DOM (Document Object Model) 文档对象模型。它将HTML文档解析为树状结构,HTML元素被表示为对象,DOM提供一组API,对象通过JavaScript进行访问和操作。
JS(JavaScript)网页开发的脚本语言。实现动态交互,用于验证用户输入、处理表单数据、创建动态效果、操作DOM元素等。
CSS(Cascading Style Sheets)级联样式表。描述网页样式和布局,为HTML元素设置各种样式,如颜色、字体、边距、背景等,以及位置和排列方式。

渲染方式

从页面展现角度,常见渲染方式有CSR SSR SSG ISR DPR,选择取决于项目的具体要求。

CSR(Client-Side Rendering,客户端渲染):页面渲染在客户端进行,单页应用程序SPA依赖客户端渲染,初始HTML被服务器返回到浏览器,然后浏览器使用JavaScript在客户端动态生成页面内容并进行渲染。CSR通常会导致较长的首次加载时间和较大的JavaScript文件。适合严重依赖用户交互的Web应用程序。

SSR(Server-Side Rendering,服务器端渲染):服务器在返回HTML之前,使用服务器端代码动态地生成完整的HTML页面。页面交互需要向服务器发送请求,可能会增加服务器的负载。适合内容驱动的网站。

SSG(Static Site Generation,静态站点生成):静态站点生成,也叫预渲染。网站页面在构建时被预渲染为静态HTML文件,并在每次请求之前都保持不变。页面的渲染是在构建过程中进行的,而不是在运行时动态生成的。由于页面是静态的,加载速度通常很快,不适合根据用户请求动态变化的情况。适合博客、文档网站和营销页面。

ISR(Incremental Static Regeneration,增量静态再生):是在SSG的基础上的改进,能够在页面被访问时进行部分更新,而不需要重新生成整个页面。服务器根据一定的逻辑重新生成部分页面内容,并将其返回给浏览器。网站可以在保持静态性能的同时,提供一定程度的动态内容。适合博客、新闻网站。

DPR(Distributed Page Rendering,分布式页面渲染):DPR是一种实验性的渲染方式,使用分布式计算资源来进行页面渲染。提高页面渲染的效率和吞吐量,尤其在高并发场景下具有良好的扩展性。

WEB渲染模式——CSR SSR SSG ISR DPR区别从页面展现角度,常见渲染方式有CSR SSR SSG ISR DPR,选择取决于项目的具体要求。icon-default.png?t=N7T8https://blog.oxings.com/article/98

这篇关于WEB渲染模式——CSR SSR SSG ISR DPR区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/370114

相关文章

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域