【问题标题】:Symfony2 esi cache user infoSymfony2 esi 缓存用户信息
【发布时间】:2013-07-18 00:00:43
【问题描述】:

我需要缓存我的主页,这还没有问题,使用反向代理就足够了

但我还需要包含带有独立 (ESI) 的标题部分,以便我可以检查用户是否已连接并显示他的信息“你好文森特”。

问题是,如果我这样做,主页(作为每个页面)将不得不测试会话,并且当我使用 PDO 存储时,我可以看到每个用户/页面在 MySQL 上运行 2 个查询。

所以我尝试添加一个简单的“is_connected”cookie,并检查它是否存在以在不询问会话的情况下呈现已注销的版本,但似乎只要我有一个允许匿名用户的防火墙,它就会询问会话.

我的想法不多了,我想看看人们为此做了什么,目标是主页上根本没有查询。

谢谢

【问题讨论】:

    标签: caching symfony esi


    【解决方案1】:

    首页不需要测试会话。它应该被公开缓存并包含 esi 包含标签:

    <esi:include src="/home/header_fragment.html" />
    

    只有 header_fragment 资源需要测试用户的登录会话。您可以在签名的 cookie 中存储登录用户信息(姓名、电子邮件等)的小缓存,并在 header_fragment 中读取该信息以确定登录与注销,如果已登录,则显示用户名而不是查找数据存储中的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-11
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多