Jamstack是什么?Jamstack是指一组用于构建现代网站的技术栈。过去的一些文章可能通常将它们理解为JavaScript、API和Markup,但实际上这个概念现在已经扩展了。Jamstack的官网将其核心概念概括为Pre-rendering、EnhancingwithJavaScript和Superchargingwithservices。对于快速和安全的网站|Jamstackjamstack.org丢个书包当然没意思了。人性化的解释一下,目前的Jamstack网站大多都有这样的技术栈:1.在部署前使用网站生成器预渲染整个网站。它会被网站生成器(SSG,StaticSiteGenerators)构建和优化成一系列的静态页面和静态资源,这样整个网站就可以托管在CDN上,加载速度可以得到最大程度的优化,并且安全性也可以得到保证。这里的网站生成器包括但不限于:Gatsby,Hugo,Jekyll,Eleventy,NextJS...2.使用HeadlessCMS(无头CMS)管理动态内容如果你想让你的网站托管动态内容,你可以访问各种HeadlessCMS(无头CMS),这些CMS系统会对外提供API,建站者可以调用这些API拉取数据,将动态数据渲染成静态页面。这里的headlessCMS包括但不限于:Ghost、Strapi、Netlify-CMS、TinaCMS……3.使用HTTPAPI增强网站功能在登录注册、评论框等需要后台的功能方面-端支持,Jamstack网站通常使用微服务提供的HTTPAPI,或者一些第三方的BaaS(BackendasaService)能力。除了以上三个主要特点,Jamstack的网站通常还有以下特点:整个站点托管在CDN和原子发布(每个发布都是一个完整的、原子的发布)基于Git的灵活的文件缓存策略有哪些优点Jamstack全自动构建部署过程?1、与纯静态网站相比,纯静态网站很难承载动态内容,而且内容的变化通常需要直接修改页面的代码,这对内容管理者来说难度很大(可能对非技术人员很不友好).另一方面,Jamstack网站通常使用无头CMS来提取内容管理。内容管理者可以直接在这些CMS系统的UI界面上修改内容,进而触发整个网站的重新预渲染和部署。2、与传统动态网站相比,这里的“传统动态网站”是指使用PHP、RubyOnRails、JSP甚至更老的CGI构建的网站,以及基于这些技术的建站工具,如WordPress、Drupal等。这些传统网站的缺点是,它们在运行时都需要一个实时在线的服务器,而这些服务器负责处理请求和渲染页面,这大大降低了服务的可扩展性和稳定性(想象一下,你有多少麻烦迁移和扩展在线WordPress网站)。由于Jamstack直接使用CDN分发静态页面,完全不需要渲染页面的服务,最大程度保证了网站的扩展性和稳定性。3、与大约五年前的单页应用(SPA)相比,随着各种前端框架的成熟,越来越多的业务逻辑被迁移到前端处理,由此催生了SPA的概念,即整个网站浏览器的UI层完全被浏览器接管。由于HTML5和现代浏览器的大量功能,这确保了最佳的用户体验。但是SPA最大的问题就是对SEO不友好,因为SPA页面的内容是由浏览器异步获取和渲染的。虽然以谷歌为首的大部分搜索引擎逐渐支持抓取SPA内容,但这仍然是一个问题。隐患。另外,由于SPA需要异步加载数据,因此需要加载运行JS后才能看到首屏内容,这也影响了用户打开网站的体验。Jamstack的页面本质上是托管在CDN上的静态页面。搜索引擎可以直接抓取这些静态内容。首屏像静态网站一样,可以直接显示内容,无需等待JS加载运行。4、相对于SSR应用,目前市面上的几大前端框架都支持服务端渲染,这就是SSR的概念。这些SSR技术也成为了Jamstack的基础之一。但是,典型的SSR应用和传统的动态网站一样,需要在线服务来渲染页面,同时也存在运维和安全方面的风险。从技术角度来说,Jamstack可以认为是一种高级的SSR技术,即预先用SSR预渲染大部分页面,然后将这些页面部署到CDN上,然后根据需要重复进行预渲染和部署对网站的数据变化。当然,Jamstack也不是万能的,不可能完美适配所有场景。Jamstack最适合一些内容更新不频繁的网站(比如新闻、电商、文档)。它不适合Feeds流、聊天室、论坛和个性化推荐等高度动态的网站,以及邮箱和编辑器等重型Web应用程序。Jamstack的商业价值在国外电商行业,HeadlessCommerce(无头电子商务)是一个非常流行的概念。所谓无头电商,就是将用户端UI展示与整个电商后台服务解耦,去掉UI层,也就是“头”。毕竟每个公司都不希望自己的网站和购买体验和别人一样。Headless电商只是暴露了一系列的API,让客户公司可以使用这些API来搭建自己的电商网站。举一些具体的例子,比如Salesforce正在推广的OpenCommerceAPI,已经逐渐成为电子商务开放API的标准。换句话说,这种做法与国内很多公司所提倡的“中台化”、“大中台小前厅”的概念非常相似。那么这与Jamstack有什么关系呢?你会发现,Jamstack所推崇的技术栈,包括预渲染动态数据的静态页面、headlessCMS、微服务HTTPAPI,与headless电商的概念几乎一模一样。或者说,headless电商是Jamstack最合适的应用场景之一。前段时间Vercel举办的Next.jsConf上,除了AWS、Github、Firebase等云平台之外,主要赞助商大多是适合Jamstack的第三方API提供商,或者一些headlessCMS。侧面反映了目前Jamstack在国外的生态繁荣。但在国内市场,可能就没那么乐观了:国内网站本身就处于一个很尴尬的境地。各大公司的主营业务都是以手机APP为主要入口。网站缺乏流量来源,可能只有某些功能类型的商家(如新闻、电商网站)需要网站;在电商市场,国内大部分中小企业都处于信息化严重不足的状态,更多依赖阿里、京东等大平台提供的基础系统。目前还远远没有必要自己搭建一套完整的流程,所以无头电商无从谈起。结语从技术角度来看,Jamstack本质上是一个增强型静态网站。它的出现很大程度上得益于各大云厂商提供的云能力,包括更易于管理的CDN/DNS、ServerlessFunction、DevOps等。工具等等。随着国内相关云计算基础设施的成熟,??Jamstack对国内几家云平台的支持会逐渐增加。我们完全可以期待,未来Jamstack将部分替代WordPress等传统建站工具,成为新一代建站技术栈。.
