0

我有一个标准的博客类型应用程序,其中包含可以将这些帖子添加到他们的收藏夹的帖子和用户。

目标

  1. 当用户查看帖子列表时,他们应该看到每个帖子是否是收藏夹的指示(图像)。匿名用户没有任何收藏夹。
  2. 帖子列表需要缓存在 Varnish 中(对于匿名用户和登录用户),因为计算成本很高。

想法

在 Varnish 中缓存列表页面并使用 ESI 获取收藏夹信息...

  1. ...对于发出当前请求的用户的每个帖子。缺点:每页 50 个 ESI 请求(基本上是N+1 问题)。
  2. ... 作为 JSON 对象,然后存储在页面上。在客户端,读取此对象并操作 DOM 以指示收藏夹信息。缺点:不适用于没有 Javascript 的用户。
  3. ...作为存储在页面中的 CSS 片段。CSS 确定每个帖子要显示的内容。缺点:仅适用于可样式化的内容(即图像)。无法显示文本信息。

我是否错过了实现我想要的任何可能性?想法 3 似乎是最聪明的答案,但如果我还想显示用户收藏帖子的日期,它就行不通了。

4

1 回答 1

0

答案2很有意义。它使页面可以很好地缓存,并且只会为浏览器中没有 javascript 的人牺牲“最喜欢的功能”。

那些人到底是谁?还在和 lynx 一起冲浪吗?;)。他们是否会接受 cookie 以使您的登录机制(个人收藏所必需)首先工作,甚至根本登录?

于 2011-10-18T21:41:08.787 回答