JAM Stack
JAMStack
-
J(JavaScript): 请求/ 响应周期中的任何动态编程都由JavaScript 处理,完全在客户端上运行。这可以是任何前端框架,库,甚至是vanilla JavaScript 。 -
A(APIs): 所有服务器端进程或数据库操作都被抽象为可重用的API ,通过HTTPS 使用JavaScript 进行访问。这些可以是定制的或利用第三方服务。 -
M(Markup): 模板化标记应该在部署时预先构建,通常使用内容站点的站点生成器或Web 应用程序的构建工具。
依赖于客户端和服务器之间紧密耦合的任何项目都不是使用
-
使用服务器端
CMS 构建的站点,如WordPress ,Drupal,Joomla 或Squarespace 。 -
一个单片服务器运行的
Web 应用程序,它依赖于Ruby ,Node 或其他后端语言。 -
单页应用程序,使用同构呈现在运行时在服务器上构建视图。
背景特性
为何选择
-
更好的性能:为什么要在部署时生成页面,等待页面动态构建?当谈到最小化第一个字节的时间时,没有什么能比通过
CDN 提供的预构建文件更好。 -
安全性更高:将服务器端进程抽象为微服务
API ,可以减少攻击的表面区域。您还可以利用专业第三方服务的专业知识。 -
更便宜,更容易扩展:当您的部署相当于可以在任何地方提供服务的一堆文件时,扩展就是在更多地方提供这些文件的问题。
CDN 是完美的,通常包括扩展他们的所有计划。 -
更好的开发者体验:松散的耦合和控制分离允许更有针对性的开发和调试,并且为站点生成器扩展选择
CMS 选项消除了为内容和营销维护单独堆栈的需要。