构建无限滚动,方便Varnish缓存


Building infinite-scroll that facilitates Varnish caching

正如您所知,无限滚动会重复ajax请求以获取新内容,现在会直接命中Apache,因为调用是POST,并且它有Cookie。我们在会话中为每个访问者存储最后显示的项目,这就是会话因此而产生cookie的原因。

我们希望利用Varnish缓存,因此我们希望改进这一点,我们想知道这里有什么选项,因为我们需要在没有cookie、没有POST的情况下进行操作(因此没有用户真实身份)。

我们在会话中存储每个访问者最后显示的项目

您可以将此信息作为查询字符串传递到下一页的url中。另外,尽量不要使用POST加载下一页,使用GET请求。

我根据github页面上提供的示例代码使用了无限滚动缓存,我们特别需要关注的部分如下。。。

nextSelector: "div.navigation a:first",
navSelector: "div.navigation",

无限滚动加载的下一个"部分"是通过读取链接并获取页面内容来获取的。

据我所知,它使用了jQuery加载功能,该功能声明如下。。。

请求方法

如果数据是作为对象提供的,则使用POST方法;否则假设为GET。

因此,大多数标准的缓存技术应该可以正常工作。我希望这会有所帮助,尽管我不熟悉清漆,但这应该会为你指明正确的方向。

根据上面的代码,nextselector获取的每个链接都可以包含动态内容的GET参数。