实现“加载更多”功能

时间:2014-01-10 17:49:01

标签: php mysql

我目前正在开发个人php网站。我们有一个页面,其中显示按分数和日期排序的不同项目。每个用户都可以“投票”每个项目(+ 1,-1)。此页面一次显示10个项目,并且有一个“加载更多”按钮,可获得以下项目。每次触发“加载更多”功能时,我都会运行查询以获取接下来的10个项目。为此,我运行这种查询

SELECT * FROM items ORDER BY score DESC, date_added DESC LIMIT '.$count.', 10

鉴于用户可以递增/递减项目的分数,第二次可能会查询同一项目(在“加载更多”触发器上)。

我能做些什么来解决这个问题。我正在考虑表格的一种快照,然后获取保存的数据,即使它是旧数据。

1 个答案:

答案 0 :(得分:3)

您可以保存已发送的托管列表(在临时表中)并使用

  

WHERE id NOT IN(SELECT id FROM already_sent WHERE user_id = $ uid)

这是一个非常快速和肮脏的解决方案,在很多请求上不能很好地扩展,但我不知道一个适合您需求的好解决方案。另一种解决方案是预取整个结果并为一组特定的请求保护它,但是这个解决方案可能会限制页面的最大结果(例如9gag)