可持续的 Drupal:通过加速你的 CMS 来节省能源的 10 种方法

还没有人喜欢这个。
Sustainable Drupal: Save energy by speeding up your CMS

知识共享 CC0 1.0 通用公共领域贡献;Jen Wike Huger 修改。

Web 性能对可持续性非常重要。 传输的数据越少越好。我们还可以做很多工作来优化内容与浏览器的配合方式,以便最终用户能够尽快获得信息。

正如之前的文章《绿色 LAMP》和《精简 Wordpress》中所讨论的那样,可以在服务器级别上做很多事情来加速你的网站。 然而,内容管理系统 (CMS) 对代码的呈现方式和时间有很大的控制权。 最终,你希望尽可能快地呈现你的主要内容,以便浏览器可以尽可能快地呈现它。

在本文中,我将重点介绍开源 CMS Drupal,它占据了大约 12% 的 CMS 市场

(注意:Wordpress 有插件,而 Drupal 有模块。)

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

最后,首届 可持续 UX 虚拟会议将于 2 月 9 日举行。 它是免费的并且是在线的。 在 此处 获取门票。

标签
Mike Gifford head shot
Mike Gifford 是 CivicActions 的高级战略家,也是公共部门数字可访问性方面的思想领袖。

3 条评论

呵呵。 有人在同一篇文章中提到了 Drupal 和效率。 真好笑。

我的大师技巧
将 db_host 从 'localhost' 更改为 '127.0.01'。 在某些情况下,这实际上可能会改善数据库查询,尽管听起来很疯狂 ;)

我以前听说过,但没有尝试过。 谢谢!

回复 作者 Hotte(未验证)

Creative Commons License本作品根据知识共享署名 - 相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.