认识 Jamstack 架构

传统架构 LAMP 或 MEAN Stack 中,每当用户请求一个页面时,服务器就会查询一个数据库,并将结果与页面的标记和插件中的数据结合起来,在浏览器中生成一个新的 HTML 文档,而这个过程会增加页面加载时间。

Jamstack 是由 Netlify 公司 2016 年提出的架构理念,JAM 具体含义是:

  • JavaScript (J): 主要指运行在浏览器的逻辑代码,负责前端渲染、数据请求等逻辑(例如:React、Vue、Angular);
  • APIs (A): 可以通过 JavaScript 调用的数据接口 (例如GitHub API);

  • Markup (M): 用于页面构建的模板方案、站点生成器、构建工具 (例如Webpack)。

Jamstack 架构下,当用户请求页面时,不需要查询数据库,因为 HTML 文档在 CDN 静态缓存文件,如果有数据需求,会再通过 API 接口去获取。Jamstack 的实现依赖如下:

  • 页面前后端分离
  • 前端支持提前构建
  • 基于 CDN Cache 来控制是否需要回源(常见基于 etag)
  • 基于统一的 API 网关对接口进行管理

Jamstack 架构下的更多优化探索:

  • 主文档加载并行 API Prefetch。
  • 静态资源(JavaScript、CSS、图片)离线化。
  • 对JavaScript编译结果进行 Cache
  • 对域名进行长链接保活
  • JAMstack + SSR 动静结合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的猫96

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值