我对instagram风格无限滚动系统有疑问。我正在尝试制作该页面。他们随机显示帖子,但我对无限滚动部分感到困惑。我创建了此查询:
$morequery=" AND p.post_id<'".$lastpost."' ";
SELECT DISTINCT p.post_id,
p.user_id,
u.username
FROM posts p, users Uu
WHERE u.ustatus='1' AND
p.userid_fk =u.user_id AND
$morequery ORDER BY p.post_id DESC LIMIT
查询的工作方式类似于当用户向下滚动发送lastpost id的ajax代码并使用lastpost进行查询时。但这不是随机系统,我在此查询中仅使用DESC。如果我在页面打开rand()工作但滚动不工作时将查询ORDER BY p.post_id DESC LIMIT
更改为ORDER BY RAND() LIMIT
。
我已经搜索了一些关于stackoverflow的解决方案。他们说使用会话如下:
$_SESSION['seen_scroll_posts'] = array();
if (!empty($_SESSION['seen_scroll_posts'])) {
$morequery = " AND post_id NOT IN (" . implode($_SESSION['seen_scroll_posts']) . ") ";
}
这不是一个好的解决方案,因为如果用户向下滚动多次,则页面将变慢。如果我使用会话解决方案,页面也会变慢,那么post_id也是主键。
无论如何,有没有像instagram Explore这样的随机显示帖子?在这方面,您有什么建议或解决方案吗?