对大量小部分信息进行清漆ESI

时间:2011-10-17 07:00:11

标签: varnish edge-side-includes

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

目标

  1. 当用户查看帖子列表时,他们应该看到是否有指示(图像) 每个帖子都是最喜欢的。匿名用户没有任何收藏夹。
  2. 帖子列表需要在Varnish中缓存(对于匿名用户和登录用户),因为计算起来很昂贵。
  3. 在Varnish中缓存列表页面并使用ESI获取收藏夹信息...

    1. ...为发出当前请求的用户的每个帖子。 下行:每页50个ESI请求(基本上是N+1 problem)。
    2. ...作为JSON对象,然后存储在页面上。在客户端上,读取此对象并操纵DOM以指示收藏夹信息。 下行:对没有Javascript的用户不起作用。
    3. ...作为存储在页面中的CSS片段。 CSS确定每个帖子的显示内容。 下行:仅适用于可设置样式的内容(即图片)。无法显示文字信息。
    4. 我是否缺少完成我想要的任何可能性? Idea 3似乎是最聪明的答案,但如果我还想显示用户偏爱帖子的日期,它就行不通。

1 个答案:

答案 0 :(得分:0)

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

无论如何,这些人是谁?还在和lynx冲浪? )。他们是否会接受cookie以使您的登录机制(个人收藏所需)首先工作,甚至可以登录?