写点什么

Web 框架 Astro 2.0 发布,在静态和动态渲染之外提供了混合渲染能力

  • 2023-04-14
    北京
  • 本文字数:1044 字

    阅读完需:约 3 分钟

Web框架Astro 2.0发布,在静态和动态渲染之外提供了混合渲染能力

Web 框架 Astro 最近发布了2.0版本,在原先的静态和动态服务器渲染功能之上提供了新的混合渲染功能。混合渲染可用于渲染特定页面,以此来获得更高的渲染性能。


Astro Web 框架旨在普及一种叫作“组件岛”的前端架构,这也是 Astro 推出混合渲染的动机:


在将近一年的时间里,Astro 都只允许用户在静态(SSG)和服务器(SSR)渲染之间二选一。静态网站提供了令人难以置信的性能,但缺少为不同请求按需生成 HTML 的能力。


Astro 2.0 的混合渲染把这两种渲染能力结合在了一起。


将静态和动态内容混合在一起可以带来新的可能性:


1. 提高热度页面的渲染性能;

2. 提高大型站点的构建性能;

3. 向已有的静态站点中加入 API。


在之前的版本中,使用 Astro 的开发人员必须在静态渲染(针对静态的、内容主导的网站)或服务器端渲染之间做出选择。有了混合渲染,开发人员可以在构建时预渲染特定的页面或服务器端点,无需放弃已部署的服务器。


大型网站通常有适合使用预渲染技术生成内容的部分,也有需要在请求时生成内容的部分。例如,电子商务网站会预先渲染主页和各种以营销为重点的内容,而产品、价格或折扣页面则使用服务器端渲染,以呈现最新可用的数据。这种混合方法可能会降低渲染网页所需的计算资源量和相关的成本。


对于使用Jamstack的大型站点,比较有价值的是增量静态生成,这是由应用程序框架 Next.js 推广的一种渲染方式。


Astro 新版本还提供了重新设计的错误叠加,改进了对开发阶段模块热加载的支持,并使用了新发布的Vite 4.0来构建内容。


Astro 是一个旨在为以内容为中心的网站提升用户体验的 Web 框架。为此,Astro 尽可能少向客户端发送 JavaScript,确保页面的交互性是可用的。对于完全静态的页面,根本不发送 JavaScript。Astro 为此提出了“组件岛”架构。Web 页面被划分为静态 HTML 内容,其中穿插着称为 Astro 岛的交互式 UI 组件。组件岛是独立渲染的,可以使用任意的 UI 框架(例如,React、Preact、Svelte、Vue、Solid、Lit)。


Astro 宣称自己是“专为速度而设计的一体化 Web 框架”。其基准测试(基于Chrome用户体验报告[CrUX]The HTTP Archive核心Web重要技术报告)报告显示,Astro 的性能优于其他 Web 框架(Sveltekit、Gatsby、Remix、WordPress、Next、Nuxt)。


Astro 是一个采用了 MIT 许可的开源项目。欢迎开发者参与贡献和反馈


原文链接

https://www.infoq.com/news/2023/04/astro-2-hybrid-rendering/


相关阅读:

Web 前端开发最好用的几个 WebGL 框架

Web、移动端、桌面端自动化测试工具或框架推荐

Web 前端设计开发工具集(JS 框架、CSS 预处理)

传统 Web 框架部署与迁移

2023-04-14 14:106080

评论

发布
暂无评论
发现更多内容

谈谈前端性能优化-面试版

loveX001

JavaScript

从URL输入到页面展现到底发生什么?

loveX001

JavaScript

20221013

留白的艺术

Java数组详解

共饮一杯无

Java 数组 10月月更

【Java深入学习】线程状态

Geek_65222d

10月月更

正确发送统计数据到服务器

小鑫同学

前端 Node 10月月更

【Ajv】JSON Schema Validator

小鑫同学

前端 Node 10月月更

西安交大谢涛:云上做实验,让计算机教学实现质的飞跃

Lily

专访北大荆琦:产业前沿进课堂,通过产学合作培养开源贡献者

Lily

Docker load 大镜像(17G) 报错no space left on device

琦彦

Docker 10月月更 Base Device Size

如何搭建组件库的最小原型

小鑫同学

前端 Node 10月月更

Qt | 线程 QThread

YOLO.

c++ qt 10月月更

通过linux-PAM实现禁止root用户登陆的方法

京东科技开发者

数据库 Linux 公有云 云主机 linux-PAM

熬夜整理最近前端面试知识点

loveX001

JavaScript

HashSet源码全方位解读

知识浅谈

10月月更

QtCreator配置protobuf环境

中国好公民st

qt Qt Creator 10月月更

Java中的重载和重写的区别

共饮一杯无

Java 10月月更 重载重写

编程语言中 null 引用的十亿美元错误趣谈

汪子熙

Java JavaScript SAP abap 10月月更

【个人成长】我认为的好的日报

非晓为骁

个人成长 日报

Java基础(四)| 数组及内存分配详解

timerring

Java 数组 内存分配 10月月更

【愚公系列】2022年10月 Go教学课程 027-深拷贝和浅拷贝

愚公搬代码

10月月更

打包 Composition API、Vue3

小鑫同学

前端 Node 10月月更

搭建组件库最小原型(支线)

小鑫同学

前端 Node 10月月更

构建工具Gulp-lesson5

小鑫同学

前端 Node 10月月更

Vue2.x组件间通信汇总表

小鑫同学

前端 Node 10月月更

Docker下Nacos持久化配置

程序员欣宸

Docker Spring Cloud nacos 10月月更

SAP UI5 OData谣言粉碎机:极短时间内发送两个 Odata request,前一个会自动被 cancel 掉吗

汪子熙

JavaScript 前端开发 SAP UI5 ui5 10月月更

构建工具Gulp-lesson4

小鑫同学

前端 Node 10月月更

Spring JPA 查询的时候提示错 org.hibernate.TransientObjectException

HoneyMoose

标签与指标到底有什么区别?

雨果

标签 指标

Qt | 实现动态创建多个Tab页,页中动态创建多个子部件

YOLO.

qt 10月月更 C++

Web框架Astro 2.0发布,在静态和动态渲染之外提供了混合渲染能力_大前端_Bruno Couriol_InfoQ精选文章