0

我很简单地浏览了 modx 选项,我注意到缓存片段的选项。我想知道这会对我的网站产生什么样的影响(缺点)。我知道缓存会通过在第一次之后将它们保持“缓存”然后只重新加载更新来改善网站的加载时间,但这一切似乎都是真的。我的问题很简单:缓存片段有什么缺点吗?干杯,马可。

4

2 回答 2

4

好问题!

Modx 的第一条规则是(几乎)总是缓存。他们在自己的博客中这么说。

正如你所说,加载时间会更短。让我们先了解一下地板上的基础知识。当您选择缓存页面时,包含所有输出的页面将作为文件存储在缓存文件夹中。如果您有一个小而简单的站点,您可能看不到缓存方面的最大差异,但如果您有一个复杂的站点,其中包含大量的块中块、片段解析块等,则差异是巨大的。我制作的一些网站下降了 15-30 个级别来解析接下来的部分中的内容。从数据库中加载所有这些新文件可能需要几秒钟的时间,而加载一个平面文件只需要几微秒。有很大的不同(记住这一点)。

现在。您可以缓存片段和块。重要的是要记住。您还可以在取消缓存下一级的同时缓存一个块。使用 Modx 出色的标记,您可以选择缓存什么和取消缓存什么,但通常您希望尽可能多地缓存。

你问缺点。没有,在某些情况下您不能使用缓存的片段/块。如前所述,缓存的响应被分为每一页。这意味着,如果您有一个页面(或 url 或任何您想调用的名称),您可以根据例如 GET 参数在其中显示不同的内容。您不能缓存搜索结果(因为内容更改)或带有分页的页面(?page=1?page=2会在同一页面上产生不同的输出)。另一种情况是片段的输出每次都是随机/不同的。假设您在标题中放了一个随机引号,这需要取消缓存,否则您每次都会看到第一个随机结果。在所有其他情况下,使用缓存。

另请记住,每次您在管理器中保存更改时,缓存都会被擦除。这意味着,例如,如果您在首页上显示最新的新闻文章,它仍然可以被缓存,因为在您添加/编辑资源之前它不会显示不同的内容,然后缓存将被清除。

总结一下。缓存很棒,您应该尽可能多地使用它。我通常会缓存我所有的片段/块,如果我遇到问题,那是我检查的第一件事。

使用缓存可以让您的网络服务器响应更快(对用户有利)并减少对数据库的查询(对您有利)。总而言之。缓存是一种礼物。用它。

于 2013-05-13T21:24:03.527 回答
4

缓存没有缺点,老实说,我想知道是什么让你认为它有缺点?

您应该始终缓存所有可以缓存的内容 - 当每次页面加载时都执行与以前完全相同的内容是没有意义的。通过缓存输出和源,您无需处理时间并提高性能。

假设 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 受众可以提供帮助)

于 2013-05-13T14:00:11.753 回答