Web 性能对可持续性非常重要。 传输的数据越少越好。我们还可以做很多工作来优化内容与浏览器的配合方式,以便最终用户能够尽快获得信息。
正如之前的文章《绿色 LAMP》和《精简 Wordpress》中所讨论的那样,可以在服务器级别上做很多事情来加速你的网站。 然而,内容管理系统 (CMS) 对代码的呈现方式和时间有很大的控制权。 最终,你希望尽可能快地呈现你的主要内容,以便浏览器可以尽可能快地呈现它。
在本文中,我将重点介绍开源 CMS Drupal,它占据了大约 12% 的 CMS 市场。
(注意:Wordpress 有插件,而 Drupal 有模块。)
- 删除不必要的 HTML,以使用 Fences 模块帮助页面更快地加载。 要更改为更轻量的标记,请复制任何 Fences 附带的模板 (*.tpl.php) 文件,并将其添加到你的自定义主题。 你还可以创建自己的 Fences 样式的 *.tpl.php 文件,并使用围栏命名约定将其放置在你的主题中。 Fences 将自动找到它们,并将它们添加到字段配置的下拉列表中。
- 通过启用 高级 CSS/JS 聚合 (AddAgg) 模块,进一步聚合和压缩你的 CSS 和 Javascript。 Drupal 核心自带的默认压缩/聚合代码还可以,但该模块中有很多改进可以进一步改善页面加载。 这个 StackExchange 答案包含一个关于如何使用 AddAgg 将 JavaScript 和 CSS 移动到页面页脚的很好的解释。 在 Drupal 8 中,默认情况下 Javascript 在页脚中运行。 此模块还允许站点使用 Google 的内容分发网络 (CDN) 来加载 jQuery。 如果浏览器已经从 CDN 加载了 javascript 文件,它将只使用其缓存的文件,而不是再次下载它。 有很多压缩代码的算法 Google's Closure Compiler 可以被 minify 或 Speedy 模块使用,以减小 JavaScript 的大小。
- 使用 Drupal Core 的 ImageCache 模块向你的访问者提供更小的图像。 这对于浏览器呈现更小图像的移动设备尤其重要。 Picture 模块是 Drupal 8 响应式图像显示格式器的后向移植,它允许管理员通过将图像样式与 CSS 媒体查询配对来优化不同设备和分辨率的图像。 如果没有优化大图像,页面加载速度会变慢。 像 TinyPNG 这样的工具可用于在将图像上传到你的站点之前减小图像大小。 Lazy Loader 模块可以通过延迟加载之外的图像来提高你的速度。 图像不会加载,直到用户滚动到它们,这既提高了页面速度,又减少了传输的总字节数,因为大多数人不会滚动到每个页面的底部。 这对于图像繁重的网站最有用。 使用标量矢量图形 (SVG) 而不是 PNG 或 GIF,因为它会减小文件大小。 SVG 文件通常非常小,它们可以内联写入 HTML5 和 CSS 文件,并且它们可以缩放而不会失去清晰度。 这允许你在手机上使用与在桌面上相同的图像。 Drupal 8 正在 用 SVG 文件替换它的许多 PNG 文件,以达到此目的。
- 禁用不必要和未使用的模块。 有些模块,如 Devel,由于性能原因,无论如何都不应该在生产站点上启用。 Drupal 的统计模块也会减慢页面速度,因为它需要为每个页面加载写入数据库。 还有一些模块,如 Views UI,仅在你编辑视图时才需要,因此为什么不默认禁用它呢? 来自已启用模块的一些代码将在每个页面视图中加载,从而减慢你的站点速度。
- 启用 SEO 清单模块,并遵循其建议,以确保搜索引擎将访问者直接发送到他们想要的信息。 访问你网站的许多人可能正在跳过主页,直接访问搜索引擎将他们发送到的内容。 这对用户来说很好,对环境也很好。
- 首先考虑到移动设备进行设计,并使用语义 HTML5 和现代 CSS3。 对于 Drupal,多年来,我们一直在建议从像 Zen 或 Adaptive Theme 这样的良好基础主题开始,以实现可访问性,部分原因是因为它们是出色的响应式平台。 首先为移动设备进行设计,迫使组织优先考虑对他们来说最重要的事情并简化他们的站点。 然后,当用户使用大显示器和高带宽浏览你的网站时,可以将其添加到其中。
- 缓存,缓存,缓存。在 Drupal 7 中,开发人员或管理员忘记简单地在 Drupal 7 中启用页面和块缓存(管理 > 配置 > 性能)是很常见的。 使用 Drupal 8 默认启用页面缓存和 CSS/JS 聚合,因此默认情况下更多站点会采用它。 确保增加 Drupal 中的缓存生命周期,以便你不会在不需要时重新生成页面。 在 绿色 LAMP:通过优化你的网站来节省能源和保护环境中,有关于如何进一步扩展此功能的示例。
- 不要使用 Flash。 除了在许多设备上无法工作之外,众所周知 Flash 会消耗大量能量,这是 Apple 过去不支持 iPhone 上的 Flash 的原因之一。 使用 HTML5 的 <video> 格式,它具有巨大的可访问性优势以及其环境影响。 当然,还有其他原因不依赖 flash,因为 安全 或 可访问性 问题。
- 考虑你的内容。 是否可以用更少的图像清楚地传达含义? 内容是否是使用适当的语义标记创建的,并使用集中式(和缓存的)CSS 文件进行样式设置? Andrew Boardman 在 Manoverboard 上的博客 鼓励我们保持简单。 Steve Krug 的书《别让我思考》包含的原则“不仅与易用性和人类参与度高度相关,而且与确定为我们的在线行为提供动力的能源消耗高度相关。” Andrew 还主张存档未使用的内容。 用户希望网站包含新鲜内容,而不是包含所有已发布页面的活动历史记录。 较少的页面意味着搜索引擎可以索引更多高质量的页面,并且维护它们所需的能量更少。 内容应该是可以找到的。 具有经过深思熟虑的导航结构的站点将使访问者受益。 使用结构化分类法还可以让访问者找到相关内容。 启用 Drupal 的核心搜索,或者更好地设置 Apache Solr 并使用 Drupal 的 Apache Solr 模块 提供出色的分面搜索体验。 在 Drupal 中,可以在前端、后端和服务器上完成很多事情。 通过良好的内容策略,我们可以确保内容易于查找且易于使用。 所有这些都将有助于减少用户需要花费在你站点上的时间,从而减少其总碳排放量。
- 寻找回馈社区的方法。 现在有超过 100 万个站点运行 Drupal,约占 Internet 的 3%。 如果你可以优化模块或主题,以便你的站点运行得更快,请考虑将其回馈给社区,以便其他人可以从中受益。
3 条评论