这可能是一个愚蠢的问题,但我现在才刚开始接触Web dev,而且我对JAMStack尤其陌生。
我读了一点,从我得到的信息来看,在JAMStack中,我们把所有东西都给了前端应用程序,所以Javascript可以像我们的操作系统一样,通过应用程序接口领域获取所有东西。
不过,在我看来,这有点像SPA的工作原理。我们通过API获取我们想要的东西,并相应地重新呈现页面的各个部分。
这里我漏掉了什么?有没有人能给我指出正确的方向,比较一下这两者的不同之处,以及这些差异的优缺点?
谢谢
发布于 2020-05-06 14:10:49
你说得对,这很让人困惑。
以前,术语JAMstack描述的是JavaScript、API和标记。由于对这一技术趋势的采用和混淆,jamstack.org将JAMstack的定义略微更改为Jamstack。
Jamstack是一个架构,旨在使web更快,更安全,更容易扩展。它建立在开发人员喜爱的许多工具和工作流的基础上,并带来最大的生产力。预渲染和解耦的核心原则使站点和应用程序能够以比以往更大的信心和弹性交付。
当您查看旧的定义,并认为它非常纯粹,SPA可以属于这一类。这可能是将JAM (JavaScript、Apis、标记)的定义从Jam (混合技术)移动到Jam(混合技术)的原因。
然而,大多数人所说的JAMstack站点,是带有预先渲染的超文本标记语言的站点。这就是不同之处。JAMstack站点(或静态站点)附带了一个构建过程,该过程预先生成所有需要的HTML文件。这种方法托管成本低、速度快( SPA必须先发出请求才能显示某些内容),而且更易于访问。
流行的项目有eleventy、Nuxt和Next、Gatsby等。
即使是看一下流行的选择,也有细微的差别。例如,Eleventy走了一条“纯粹主义”的道路,主要提供预先生成的HTML。
Nuxt/Next/Gatsby和其他工具通常附带通用的JavaScript方法。它们生成静态的超文本标记语言,但是一旦加载了JavaScript,它们就会转换为SPA。
总而言之,细微差别是微妙的,我不会太担心这一点。但请记住,与传统的SPA相比,JAMstack世界中预先呈现的超文本标记语言站点提供了一些不错的性能改进。
发布于 2021-07-01 01:48:42
问得好。名称Jamstack中的J很容易导致这方面的混淆!
没有关于在Jamstack站点的前端使用什么的规定。它可能是包含大量JavaScript单页面应用程序,也可能是完全没有JavaScript的纯HTML。
区别在于它是如何提供服务的。
Jamstack站点被托管为静态资产,而不是来自一组服务器,这些服务器主动计算对每个请求的响应。这为它们提供了一些良好的性能、可扩展性和安全性特征。,并解锁一些令人愉快的开发工作流程。
因此,尽管SPA可能看起来类似于前端的一些Jamstack站点,但它可能托管在服务器上,该服务器主动生成对每个请求的响应,将内容应用到前端使用的模板等。而Jamstack站点将为预先生成的资产提供服务,可能会通过JavaScript和API调用来丰富它们的客户端。
我制作了a FreeCodeCamp video,它详细介绍了这方面的许多内容(稍后将更深入地研究示例),这可能会引起人们的兴趣,在Jamstack站点上也有一个glossary of some related terms。
https://stackoverflow.com/questions/61624773
复制相似问题