我很简单地浏览了 modx 选项,我注意到缓存片段的选项。我想知道这会对我的网站产生什么样的影响(缺点)。我知道缓存会通过在第一次之后将它们保持“缓存”然后只重新加载更新来改善网站的加载时间,但这一切似乎都是真的。我的问题很简单:缓存片段有什么缺点吗?干杯,马可。
2 回答
好问题!
Modx 的第一条规则是(几乎)总是缓存。他们在自己的博客中这么说。
正如你所说,加载时间会更短。让我们先了解一下地板上的基础知识。当您选择缓存页面时,包含所有输出的页面将作为文件存储在缓存文件夹中。如果您有一个小而简单的站点,您可能看不到缓存方面的最大差异,但如果您有一个复杂的站点,其中包含大量的块中块、片段解析块等,则差异是巨大的。我制作的一些网站下降了 15-30 个级别来解析接下来的部分中的内容。从数据库中加载所有这些新文件可能需要几秒钟的时间,而加载一个平面文件只需要几微秒。有很大的不同(记住这一点)。
现在。您可以缓存片段和块。重要的是要记住。您还可以在取消缓存下一级的同时缓存一个块。使用 Modx 出色的标记,您可以选择缓存什么和取消缓存什么,但通常您希望尽可能多地缓存。
你问缺点。没有,但在某些情况下您不能使用缓存的片段/块。如前所述,缓存的响应被分为每一页。这意味着,如果您有一个页面(或 url 或任何您想调用的名称),您可以根据例如 GET 参数在其中显示不同的内容。您不能缓存搜索结果(因为内容更改)或带有分页的页面(?page=1
等?page=2
会在同一页面上产生不同的输出)。另一种情况是片段的输出每次都是随机/不同的。假设您在标题中放了一个随机引号,这需要取消缓存,否则您每次都会看到第一个随机结果。在所有其他情况下,使用缓存。
另请记住,每次您在管理器中保存更改时,缓存都会被擦除。这意味着,例如,如果您在首页上显示最新的新闻文章,它仍然可以被缓存,因为在您添加/编辑资源之前它不会显示不同的内容,然后缓存将被清除。
总结一下。缓存很棒,您应该尽可能多地使用它。我通常会缓存我所有的片段/块,如果我遇到问题,那是我检查的第一件事。
使用缓存可以让您的网络服务器响应更快(对用户有利)并减少对数据库的查询(对您有利)。总而言之。缓存是一种礼物。用它。
缓存没有缺点,老实说,我想知道是什么让你认为它有缺点?
您应该始终缓存所有可以缓存的内容 - 当每次页面加载时都执行与以前完全相同的内容是没有意义的。通过缓存输出和源,您无需处理时间并提高性能。
假设 MODX Revolution (2.x),您使用的所有模板标签都可以称为缓存和非缓存。
缓存:
[[*pagetitle]]
[[snippet]]
[[$chunk]]
[[+placeholder]]
[[%lexicon]]
未缓存:
[[!*pagetitle]] - this is pointless
[[!snippet]]
[[!$chunk]]
[[!+placeholder]]
[[!%lexicon]]
在 MODX Evolution (1.x) 中,标签是不同的,您没有太多的控制权。
前段时间我在我的博客上写了关于 MODX 革命中缓存的文章,我强烈建议您查看它,因为它提供了更多关于为什么以及如何有效使用缓存的见解:https ://www.markhamstra.com/modx/2011/ 10/cache-guidelines-for-modx-revolution/
(PS:如果您有特定于 MODX 的问题,我建议您将它们发布到 forums.modx.com - 那里有更多的 MODX 受众可以提供帮助)