JAMStack(JAM 表明JavaScript,API 和Markup)是一种使用Static Site Generators(SSG) 技术、不依赖 Web Server 的前端架构。前端
它的核心是:不依赖 Web Server。vue
这看起来和把一个静态网站部署到文件服务器没什么区别。我理解,JAMStack = 现代 SSG 框架 + DevOps + Serverless,是一种「究极」的先后端分离。git
激进的说,「Static is the new dynamic」。github
一种有趣的比喻是:「CDN 优先应用程序」。数据库
对比 Client Side Rendering(CSR),SSG 的 TTFB 有明显的优点;同时因为提早渲染,SEO 也更友好。npm
对比 Server Side Rendering(SSR),SSG 部署简单,直接放到 CDN 便可,不依赖 Node Server 动态渲染。TTFB 也优于 SSR。后端
Next.js的做者之一Guillermo Rauch提到,因为 JAMStack 的易部署特性,给整个前端的开发测试流程带了翻天覆地的变化:「The Deploy URL, the Center of Gravity」,即在开发、测试、验收等等的流程中,核心是围绕 URL。浏览器
如今「三大框架」都有相应的 SSG 方案,既知足了多样化、复杂化的前端开发须要,又能简单的生成静态网页:安全
部署方面有Vervel、Netlify、腾讯云云开发等等。服务器
Ledge(源自 know-ledge,意指承载物)知识平台是基于咱们所进行的一系列 DevOps 实践、敏捷实践、精益实践提炼出来的知识体系。
Ledge 网站使用 Angular 开发。做为一个类 Wiki 型的网站,它使用 Markdown 做为编写内容的语言,使用Ledge Framework动态的将 Markdown 转换为 HTML。这就涉及到,若是转换过程在浏览器进行,势必致使性能的降低,和对 SEO 的影响。
因此咱们选择了Scully做为 SSG 框架,在 build 阶段依据路由将内容提早转换为 HTML 页面:
各方面性能都有了大幅提升: