我正在使用PHP会话来存储一些寿命很短的变量,并且每次关闭浏览器时也会被删除。但是,如果我提供页面的缓存版本,则该页面不起作用,该页面基本上是静态HTML页面。
是否有其他替代方法可以以相同的方式工作并且通常与缓存兼容?
PS:我一般来说是在谈论WordPress网站和缓存(基本上适用于那里的每个主要缓存解决方案)
Cookies和caching是在wordpress中进行会话的最佳选择。当涉及到[[cookies时,基本上有两种类型的cookie1.Session Cookies2.永久性cookie。
现在的问题是WordPress核心如何使用Cookie?
当我们提到WordPress核心时,我们仅指组成开放源代码项目的文件,然后再安装任何第三方插件或主题。我们喜欢称它为自然状态的WordPress。现在,您已经了解了Cookie的基本知识和不同类型,下面让我们看一下WordPress核心为何以及如何使用它们使所有魔术在幕后发生。有趣的事实:Cookie最初源自术语“魔术Cookie”。WordPress核心将cookie用于两个不同的目的:
1。登录Cookies
登录cookie包含身份验证详细信息,并在用户登录WordPress管理仪表盘时使用。根据WordPress Codex,设置了两个不同的会话Cookie:[登录时,WordPress使用wordpress_[hash]
Cookie存储身份验证详细信息(限于/ wp-admin /区域)。登录后,WordPress设置wordpress_logged_in_[hash]
cookie。这表明您何时登录以及您是谁。当您尝试访问WordPress网站的后端时,将进行检查以查看上述两个cookie是否存在并且尚未过期。这就是让您神奇地绕过wp-login.php
屏幕的原因。 😉WordPress还设置了wp-settings-{time}-[UID]
cookie。该ID是WordPress用户数据库表中的用户ID。这将存储个人仪表板和管理界面设置。
2。评论Cookie
默认情况下,当有人在博客帖子上发表评论时(有效期为347天)设置了cookie。这样一来,如果他们以后再回来,则不必再次填写所有信息。存储了以下三个cookie:comment_author_[hash]
comment_author_email_[hash]
comment_author_url_[hash]
但是,由于GDPR导致最近的隐私政策发生了变化,WordPress核心引入了新工具,以确保您允许用户选择加入这些cookie。如果尚未设置此设置,则可以在WordPress管理控制台中的“设置→讨论”下启用。选择“显示评论Cookie启用复选框”选项。流行的Akismet插件还允许您显示隐私声明。Cookies和WordPress缓存当涉及到WordPress缓存时,这就是棘手的地方。缓存实质上是存储一个请求中的资源并将这些资源重新用于后续请求的过程。基本上,它减少了生成页面视图所需的工作量。尽管这对性能很有帮助,但在Cookie方面却引起了问题。
为什么?因为在那里可以使用Cookie来执行某些操作,例如在WooCommerce网站上浏览时保持购物车填充。但是,如果从缓存中提供页面,PHP和数据库都不会执行任何操作,则服务器只会提供页面的静态副本。
那你该怎么办?
使用JavaScript第一种选择是使用JavaScript并动态更新页面上的内容。基本上,您具有HTML占位符,并使用JavaScript通过API或Ajax调用提取信息。
虽然这不是理想的选择,但从性能方面来说,缓存总是更好的选择。但是,如果您必须让部分内容保持动态,而页面本身可以保持静态(从缓存中提供),则这是做到这一点的一种方法–使用JavaScript通过API / ajax动态提取页面那部分的内容呼叫。但是,除非您可以雇用WordPress开发人员来构建自定义JavaScript解决方案或插件扩展,否则该选项通常不切实际。
默认情况下,我们不会从缓存中排除wp_woocommerce_session_ cookie。根据我们的经验,大多数WooCommerce网站都没有任何问题。通过增加缓存的命中率,同时使用更少的PHP工人,这也提高了性能。
但是,由于有许多不同的WordPress主题和插件配置,我们可以根据需要从缓存中排除wp_woocommerce_session_ cookie。只需联系我们的支持团队即可。结果是,一旦用户将产品添加到购物车中,便不会再从缓存中满足所有后续请求,从而增加了PHP worker的使用率。
如果您需要从缓存中排除的自定义页面,请随时与我们的支持团队联系以获取帮助。同样,在排除时,您必须小心。太多未缓存的页面实际上可能会降低性能。查看我们关于托管WordPress会员网站的注意事项。