设置 CMS 缓存,提高页面加载速度
通过内置缓存,bluetonix CMS 可以在后续访问中直接提供生成好的页面。在本教程中,您将了解如何为每个页面设置缓存,以及静态、依赖参数的、多语言和个人页面的重要区别。
什么是 CMS 缓存?
bluetronix CMS可以缓存已经生成的页面的最终HTML。在后续调用中,可以直接输出该缓存版本,而不是每次都通过CMS网站渲染过程重新生成页面。
这样许多页面可以更快地交付,而无需每次都重新进行所有PHP处理步骤和数据库查询。缓存设置为每个CMS页面单独配置。
打开页面的缓存设置
打开所需页面,在编辑器中通过齿轮图标访问页面设置。在这里你可以找到缓存设置。
通过下拉框设置页面是否可以缓存。默认情况下,缓存是启用的。
选择所需的设置,然后点击保存。
缓存:是 - 重用已完成的页面
在Cache: Yes的情况下,CMS可以保存生成的HTML页面。如果在后续调用时存在相应的最新缓存版本,则可以直接交付最终HTML。
Seitenaufruf
↓
Passende Cache-Version vorhanden?
↓
Ja
↓
Fertiges HTML direkt ausgeben
在这种调用中,无需再次执行完整的渲染过程。反之,如果页面需要重新生成,则需要首先经过正常的CMS处理;然后结果可以再次保存到缓存中。
缓存:否 - 每次访问时重新生成页面
如果选择Cache: No,页面将不会从页面缓存中交付。每次调用时,CMS都会重新执行所需的渲染过程。
Seitenaufruf
↓
CMS-Site-Rendering-Prozess
↓
PHP-Verarbeitung und benötigte Datenbankzugriffe
↓
Layout und Seiteninhalt erzeugen
↓
HTML ausgeben
该设置适用于每次调用时需要最新内容或针对特定用户生成内容的页面。
示例:缓存一个普通内容页面
像about_us.html这样的页面通常向所有访客显示相同的内容。启用缓存功能后,CMS可以生成该内容,并重复使用生成的HTML以供后续调用。
/about_us.html → eigene Cache-Version
对于访客来说,网页看起来与新生成的页面完全相同。HTML是否来自缓存,仅凭可见的页面布局无法判断。
缓存版本何时更新?
CMS不仅考虑直接的页面内容,还考虑最终页面的其他组成部分。例如,使用的布局、头部、导航、页脚和其他嵌入的页面元素。
如果页脚被更改或添加了新菜单项,未更改的内容页面的缓存版本也必须更新。CMS会检查页面相关的组成部分,并在有相应更改时生成新缓存版本。
为GET参数创建自定义缓存版本
即使页面通过GET参数调用,也可以缓存。关键在于某一特定参数组合提供相同的内容,只要相关数据没有变化。
一个产品调用可能如下所示:
/index.html?productID=1
/index.html?productID=2
/index.html?productID=3
/index.html?productID=4
每个这些调用可以显示不同的产品内容。因此,CMS可以为每个参数组合使用各自的缓存版本。
仅仅因为GET参数并不是关闭缓存的理由。前提是相应的缓存版本对所有访客而言,必须包含相同的内容。
为不同语言创建独立的缓存版本
在多语言网站中,还考虑了语言。同一产品在英语、德语和法语网站上可能包含不同的文本。
https://www.my-demo.com/index.html?productID=1 → Englisch
https://www.my-demo.de/index.html?productID=1 → Deutsch
https://www.my-demo.fr/index.html?productID=1 → Französisch
因此,缓存版本也必须与各自的语言相匹配。这样每种语言的相同产品调用可以交付相应的文本。
什么时候应该使用Cache: No?
在用户依赖内容的页面上,应该禁用页面缓存。个人账户页面可以具有相同的URL,但对于每个已登录的用户显示不同的信息。
/MyAcoount.html → Benutzer Max → eigene Shop-Käufe
/MyAcoount.html → Benutzer Ross → andere Shop-Käufe
这些个人内容不得作为其他访客的一般缓存版本重复使用。将此类页面的缓存设置为否。
在/Search.html中,如果每次调用都需要重新计算搜索结果或取决于不在缓存中的输入,Cache: No也是合适的。
不要为包含不同用户个人数据的输出启用页面缓存,尽管它们位于同一URL下。
总结
使用 缓存: 是 可以将适当的页面作为静态HTML重新利用,并更快地提供。不同的GET参数和语言可以各自拥有自己的缓存版本。对相关页面元素的更改会导致受影响的缓存版本被更新。
对于个人帐户页面或其他每次调用都需要根据用户生成的内容,请选择 缓存: 否。该设置可以在编辑器中的 页面设置 → 缓存 找到。
常见问题
客户常问我们的问题
我在哪里可以找到CMS页面的缓存设置?
在编辑器中打开所需页面,然后通过齿轮图标进入 页面设置。在那里你可以找到 缓存 的选项。
默认情况下,哪个缓存设置是激活的?
默认情况下,页面缓存是激活的。
缓存: 是时会发生什么?
CMS可以存储生成的HTML,并在后续调用时直接提供合适的、最新的缓存版本。这意味着页面不需要在每次调用时完全重新生成。
缓存: 否时会发生什么?
页面在每次调用时都会通过所需的CMS网站渲染流程重新生成,而不是从页面缓存中提供。
当我更改标题、导航或页脚时,缓存会被更新吗?
是的。CMS也会考虑相关的、嵌入到页面中的元素,并在相应的更改时生成新的缓存版本。
带有GET参数的页面可以缓存吗?
可以。例如, productID=1 和 productID=2 可以分别获得各自的缓存版本,只要它们的内容可以被重复利用。
不同语言是否有不同的缓存版本?
是的。语言会被考虑,因此,例如,英文、德文和法文的产品调用可以获得不同的缓存版本。
我应该为个人帐户页面启用缓存吗?
不应该。像 /MyAcoount.html 这样的个人帐户页面可以根据登录用户在同一URL下显示不同的数据。因此,请使用 缓存: 否。
我该如何处理搜索页面的缓存?
对于 /Search.html,如果每次调用都需要重新计算搜索结果或依赖其他输入,则 缓存: 否 是合适的。