Enjoy software architecture and programming

01Jun 2022

静态与动态网站对比

1688 words - 9 mins

早在网景(netscape) 刚刚诞生,家庭互联网还处于起步阶段的时候,你真的只有一个选择,一个使用 HTML 对其进行硬编码的网站,并且这是当年的标准,它使更新网站变得困难、痛苦,而且通常是标准企业主无法企及的。 几年过去了,最终 WordPress 的出现将网站开发带给了大众,使用 WordPress,您不仅可以从(当时)易于使用的界面构建和更新您的网站,还可以实现一系列动态功能,比如联系表格、社区网站,甚至是电子商务系统。 有了广泛的可用功能,似乎唯一的限制是您对可以做什么的想象力,您所需要的只是开发人员和预算。 即便是拥有如此强大的市场地位和广泛的功能,为什么静态网站现在又流行起来了呢?

1、什么是静态网站?

如下所述,静态站点通常只是 HTML、CSS 和 JS。 任何内容更改都必须通过手动修改 HTML 代码来完成。 如果您不熟悉 HTML,这可能会令人生畏,因为一个错误的修改可能会导致您的整个网站看起来完全错误。因此,在所有这些进入障碍的情况下,您为什么还要费心去下载一个 WordPress 主题并对样式进行所需的调整。 您应使用静态站点生成器。

2、静态站点生成器

最早的大型静态站点生成器 (Static Site Generators, SSG) 之一是 Jekyll,它让您可以两全其美,您可以为帖子和页面设置许多模板,在 YML 文件中使用 MarkDown 编写内容,运行快速 CLI 工具和 Jekyll 会负责其余的工作。 这使您可以对普通静态站点进行微调控制,而无需每次要创建新帖子时都要创建新 HTML 文件的繁琐过程。 从那时起,市场上充斥着几乎所有您能想到的编程语言的工具和框架。

3、静态站点的优势

3.1、性能(Performance)

静态站点与动态站点相比的一大优势是性能,因为站点不必在每个页面加载时对数据库进行处理器密集型查询,浏览静态站点的每个页面加载速度很快,非常的快。通过对文件缩小和图像优化的适当设置,页面可以在毫秒范围内加载现代互联网校正。 随着 Google 等搜索引擎越来越重视网站性能作为排名工具,这可以为您和您的企业都有巨大的好处。

3.2、灵活性(Flexibility)

以 Twitter Feed 为例,假设有一个 WordPress 站点,您可能需要安装一个插件并使用短代码使其出现在前端,这会在一个包中引入复杂性、额外的脚本加载和安全问题。但在编辑 HTML 文件时,实现 Twitter Feed 可以像从 Twitter 复制和粘贴推荐的代码一样简单,也可以像手动创建和自定义 Twitter Feed 样式一样复杂。 唯一的限制是您的能力。

3.3、提高可靠性(Improved reliability)

由于没有后端服务或数据库为您的站点提供内容,因此不再需要额外的可用性要求才能使您的站点正常运行。 突然涌入的流量将不再导致性能问题,恶意用户将更难关闭网站。 这并非不可能,安全性和可靠性绝对是在规划和构建站点时应该考虑的因素,但它比大多数 CMS 和动态平台更强大。

image

不再出现与静态站点建立连接故障的错误。

3.4、更简单的托管要求

当您托管一个动态网站时,您往往需要考虑许多不同的元素,例如:

  • 我的主机可以处理数据库托管吗?
  • 它会运行 WordPress 软件吗?
  • 安装程序是否针对加载动态文件进行了优化?

托管静态站点时,您的要求变得更加简单:

  • 我可以托管 HTML 文件吗?
  • 该平台使用 NGINX 还是 Apache?

虽然根据您的部署计划可能还有其他要求,但这是任何静态站点的两个基本要求,极大地简化了您的托管,并且通常在额外的软件和支持成本上节省大量资金。

4、静态网站的缺点

综上所述,我相信很多人都想知道缺点是什么? 好吧,有一些。

4.1、复杂性(Complexity)

即使使用像 Jekyll 这样的系统,您仍然需要创建原始布局,并且与许多现代 WordPress 主题不同,Jekyll 并没有带有花哨的拖放网站设计器。 您需要创建的是使用 HTML、CSS 和 JS。 这可能导致您需要聘请外部人员进行初始设置,从而导致不可预见的成本。 此外,创建新文章(new posts)可能很棘手,您的内容工具通常只是一个标准的文本编辑器,虽然这有助于简化事情,但取决于您使用的 SSG,如果您需要学习 Markdown,它也可能使事情复杂化。 有像 Netlify、PrismicIO 和 Contentful 这样的 Web UI,但根据我的经验,在我推荐它们之前,在文档和支持方面还有很长的路要走。

4.2、功能性(Functionality)

如果您需要一个具有自动营销功能和会员区的大型电子商务平台,那么静态网站将不适合您。 由于该站点完全由 HTML/CSS/JS 文件组成,因此任何比联系表单或 Twitter Feed 更复杂的东西都不可能实现,并且像 WordPress 这样的动态网站或 CMS 平台将更加合适。

5、哪个更好?

正如您在上面看到的,CMS/动态站点和静态站点在 Web 上都有自己的位置,决策实际上归结为以下几点:

  • 预算
  • 项目要求/复杂性
  • 您的技能和能力
  • 您的用户群

如果您需要一个 7 页的快速网站,并使用联系表来宣传活动,那么一定要走 SSG 路线,即使您必须聘请外部开发人员才能开始工作,您也会看到更高的投资回报率。 如果您需要一个全面的会员网站,包括在线学习和商店,那么基于 CMS 的网站将是一条更好的选择。

(完,文本编译自 Static vs Dynamic Sites