我正在尝试在 cakephp 中实现类似于 facebook 的仪表板(获取帖子并将它们发布到时间线,当你按下see more
它时,它会不断从以前的偏移量中检索帖子),但我仍然对逻辑和工具感到困惑,我应该使用 cakephp 分页我的实现中的类。
$this->paginate();
根据某些性能方面的考虑,它应该以某种方式通过 ajax 调用
任何帮助或建议从哪里开始?
谢谢大家
我正在尝试在 cakephp 中实现类似于 facebook 的仪表板(获取帖子并将它们发布到时间线,当你按下see more
它时,它会不断从以前的偏移量中检索帖子),但我仍然对逻辑和工具感到困惑,我应该使用 cakephp 分页我的实现中的类。
$this->paginate();
根据某些性能方面的考虑,它应该以某种方式通过 ajax 调用
任何帮助或建议从哪里开始?
谢谢大家
如果您对要添加数据的内容进行分页-您将获得重叠的数据,因此您要求第2页-并就当前用户而言,结束前一页。
无休止的数据流的常规技术是使用如下查询:
SELECT *
FROM foos
WHERE created >= $previousLastTimestamp
ORDER BY created DESC
LIMIT 20
请注意,虽然我created
在此示例中使用 - 它可以是任何伪唯一字段。
当您第一次呈现页面时,将最后一个条目的时间戳存储在 javascript 变量中,那么您的“获取更多帖子”逻辑应该是:
$this->Foo->find
调用)使用>=
条件的原因是,除非您正在测试的字段具有唯一值,否则可能会有多行具有您正在测试的值。如果您有一个按 (id) 排序的自然唯一字段,那么您不需要使用大于或等于,您可以简单地使用大于,并且避免需要考虑重复行。
这是一个参考,它更详细地解释了为什么你应该处理这样的系统,避免传统的分页。