3
缓存排序/属性可以更改的分页结果的最佳实践是什么?
缓存排序/属性可以更改的分页搜索结果的最佳实践是什么? 假设在我的应用程序中,有人想要查看最近的20个讨论线程(在10,000个线程中)。一个请求将通过发送到数据库,servlet以XML / JSON形式从讨论线程表中获取前20条记录。如果他们随后要查看下一个20,则转到结果的下一页,这会触发另一个请求以获取下一个批次(限制和偏移= 20,依此类推)。 为了减少服务器负载和客户端等待,我想缓存结果的前几页。但是,我有两个问题: 结果显示的表可以按多个属性(即,线程创建日期,线程作者,最后发布日期)排序。这意味着没有上下文(即我们排序的依据)之类的“前20个结果”这样的语句是没有意义的。然后,前端如何与后端通信已加载的内容?我的第一个想法是对每个结果使用ID,但是在随后的请求中将它们发送回服务器(并根据它们过滤结果)就像将所有内容盲目地发送回一样耗时。我怎样才能做到这一点? 如果先前返回的结果的属性(即最新日期)改变了怎么办?然后,我们需要一种检查每个结果的方法,以查看自页面调入以来是否已在服务器端对其进行了修改。我该怎么做?