渲染模式差异和选择

news2024/11/28 22:55:22

传统服务端渲染

在过去传统开发中,页面渲染任务是由服务端完成的,服务器负责获取数据,拼装页面,客户端仅负责内容显示,使用这种方式的典型技术有 JSP、PHP、ASP.NET 等等。

在这里插入图片描述

客户端渲染 CSR

Vue.js、React 这类框架之所以能解决前面提到的问题,主要是因为采用了前后端分离的开发模式,这种方式的特点是页面是由客户端渲染的,应用在客户端首次获取的是空 HTML 文档,浏览器下载并运行 JS,获取数据之后再创建页面,也就是大家熟悉的单页面应用 - SPA。

在这里插入图片描述

客户端渲染适合那些不需要 SEO 或者用户访问频率不高的强交互应用,例如:SaaS 系统、后台管理系统、在线文档等。

服务端渲染 SSR

前面提到 SPA 的 SEO 问题和首屏加载速度问题,有什么好办法可以解决它们呢?其实传统的服务端渲染就行。但是这样一来岂不是开历史倒车,兜兜转转又回去了?

在这里插入图片描述

SSR 方式非常灵活,几乎可以适配大多数需求,尤其是一些基于内容的网站:博客,电商,官网等等。

静态站点生成 SSG

直接生成站点静态文件的方式:

image-20230521175416788

SSG 仅适合内容创建之后不经常变化的网站,例如:个人博客、网站、宣传页等。

端侧渲染

过去,SSR 只能运行在 Node.js 环境,但是 Next 提供了端侧渲染 - Edge Render,这种方式能够在 CDN edge worker 环境下直接执行渲染,这样 Next 应用能够运行在离用户更近的环境中,从而降低延迟和服务器花销。

在这里插入图片描述

实时游戏,交易系统等实时性要求高的应用可以尝试Edge渲染模式

Next中的内容渲染

Next中页面渲染非常灵活,可以理解为混合渲染模式。因为跟layout或page使用方式不同实际上会产生独立渲染方式,大面上分为:

  • 静态渲染:创建时即渲染了页面结果,可理解为SSG
    • 缓存数据 + 无动态函数 cached + no dynamic function
  • 动态渲染:每次请求在服务器动态渲染结果,此方式有两种实现:
    • 动态函数 dynamic function
    • 动态数据获取 dynamic data fetching

动态函数

默认情况下会认为是静态函数,但会根据请求时的参数情况决定是否是动态函数:

  • 在服务端组件中使用cookies()headers()
  • 在客户端组件中使用useSearchParams()
  • 使用searchParams 页面属性

动态数据获取

通过设置fetch()请求的cache选项为no-storerevalidate为0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/664264.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

专访蘑菇物联沈国辉:做工业AI时代的推动者

在中国制造迈向高质量发展的进程中,数智化转型会成为破局之道。在这其中,蘑菇物联除了是一个本分的答题者,还是一个善于发现问题的贡献者。 作者|思杭 编辑|皮爷 出品|产业家 从广州造纸厂到广州造船厂,从第一橡胶厂到电池厂&a…

利用R语言通过百度地图API进行批量地理编码

利用R语言通过百度地图API进行批量地理编码 当您有大量的地点名称需要在地图上来呈现时,首先要在在线地图上找到该地址的坐标,通常是指经纬度,如果能够用代码来实现,便少了许多费时费力的体力活儿,以下将详细介绍地理…

数据结构的一些总结---利用Python实现

大家好,我是北山啦,本文简单介绍Python数据结构的相关内容,简单就是很简单的那种 文章目录 查找线性查找 O(n)二分查找(Binary Search) O(logn) 排序排序Low B三人组冒泡排序选择排序插入排序 排序NB三人组快速排序归并排序 数据结构栈和队列…

[Day 3 of 17]Building a document scanner in OpenCV

a computer vision-powered document scanner 计算机视觉驱动的文档扫描仪,三个步骤: 边缘检测edges通过边缘,找到代表待扫描纸张的轮廓contour应用透视转换(a perspective transform)获得文档自上而下的视图 How to Build a Kick-Ass Mob…

录音转文字的方法有哪些?这三个录音转文字的方法有哪些

你是否曾经遇到过这样的场景:在开会或者采访时,需要记录重要信息,但是手写记录或打字速度跟不上对话节奏,甚至难以记录所有细节。此时,录音转文字软件就派上用场了。然而,市场上有太多种选择,到…

【Vue3 生态】Vue Router 路由知识概览

前言 在 Web 前端开发中,路由是非常重要的一环,但是路由到底是什么呢? 从路由的用途上讲 路由是指随着浏览器地址栏的变化,展示给用户不同的页面。 从路由的实现原理上讲 路由是URL到函数的映射。它将 URL 和应用程序的不同部分…

低代码平台——提高研发效率的神器

一、前言 听起来像是一个噱头,但是低代码确实是一个能够快速提高研发效率的神器。 通过使用低代码平台,研发人员可以节省好几个月的时间,将前后端各种功能可视化以搭积木的形式快速完成。今天,我们将深入探讨低代码开发平台的特点…

两阶段目标检测指南:R-CNN、FPN、Mask R-CNN

动动发财的小手,点个赞吧! Source[1] 多阶段(Two-stage)物体检测 计算机视觉中最基本和最广泛研究的挑战之一是目标检测。该任务旨在在给定图像中绘制多个对象边界框,这在包括自动驾驶在内的许多领域非常重要。通常&am…

一种看门狗复位电源的电路

如下是一个看门狗复位电源的电路: 满足掉电能被监测到,掉电后利用法拉电容保持后级模组继续工作一段时间。 看门狗可以关闭电源 320ms 20ms ,对后级模组起到断电复位作用。 同时复位电源拉低的是VCC_4V 而非超级电容所在的VCC_4V_IN,并不会…

SpringBoot项目的事务实现

说明:当业务中的某个功能,需要多个操作组合执行才能完成时(如删除部门,部门下的员工也需要同步删除时),为了保证数据的一致性,需要对这些组合操作添加事务。(参考:http:/…

从电源 LED 读取智能手机的秘密?

研究人员设计了一种新的攻击方法,通过记录读卡器或智能手机打开时的电源 LED,使用 iPhone 摄像头或商业监控系统恢复存储在智能卡和智能手机中的加密密钥。 众所周知,这是一种侧信道攻击。 通过密切监视功耗、声音、电磁辐射或执行操作所需…

一、elasticsearch的简介与安装

目录 一、Elasticsearch下载 二、安装 三、启动 四、安装可视化插件(elasticsearch-head) 1、下载地址 2、解压缩下载好的压缩文件 3、进入解压缩目录 五、解决跨域问题 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方…

端午节出行的小贴士——行之安,乐之逍

亲爱的朋友们, 随着端午节的到来,想必许多人已经开始期待那份出游的快乐与解脱。无论你是期待漫步在宁静的田野小径,还是在繁华的城市中探索,这篇文章都会给你一些实用的端午节出行建议,帮助你尽情享受旅程。 首先&a…

Airtest图像识别测试工具原理解读最佳实践 | 京东云技术团队

1 Airtest简介 Airtest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。Airtest框架基于一种图形脚本语言Sikuli,引用该框架后,不再需要一行行的写代码,通过截取按…

如何利用数据化营销助力新零售企业发展?”

​“新零售”这个概念诞生至今已有5年,但对于其具体的定义,行业内仍然有许多争议。有人认为“新零售”是对传统零售模式的颠覆;也有人认为“新零售”就是将线上和线下相结合。不论如何,在这个不断变化的行业中,新零售企…

使用omp技术实现wordcount算法

【问题描述】 编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。 注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。 【输入形…

智能数字资产管理系统,全面提升企业的管理效率

智能数字资产管理系统,能够为企业带来很多成果,提高企业管理效率。让程序简单化,提升组织生产率,可以帮助企业以更有效的方式企业实现目标。 研发背景 智能数字资产管理系统 系统功能 1.可以实现数字资产全生命周期的管理&#…

大厂月薪15K被优化,面试 “吹牛” 入职小厂,月薪25K 好慌...

某大厂员工被优化,面试“吹牛”入职小厂,纠结去不去,心里有点慌。 作为一个从福报厂出来的HR,目前在100多人的小厂当HR总监。面对这种情况已经是见怪不怪了。作为小厂,没有大厂那么严格的背调,所以有些来自…

端口映射的作用?如何在路由器上做端口映射

一、端口映射作用 路由器中设置端口映射的主要作用,就是让Internet上的其他用户,可以访问你路由器下面电脑中的数据(软件、文件)。 当家里的电脑使用路由器上网后,在Internet下的其它电脑、手机等网络设备,将无法自接访问你电脑…

C++ 反汇编简要

摘要:本文主要描述x86_64机器中C代码在汇编中的具体代码。   关键字:cpp,IA32,asm   注意:本书假定你拥有基本的C软件开发能力,能够理解基本的C代码。并且熟悉汇编代码,了解基本的取址模式并且熟悉IA32指令集&…