javascript 我怎样才能避免两次收到相同的帖子

vawmfj5a  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(123)

我正在使用PHP、MySQL和JavaScript编写Web应用程序的代码。
这是一个非常简单的社交网络,用户可以创建帖子,查看、点赞和评论其他用户的帖子。在主页上,它会加载帖子,并根据点赞、评论的数量以及帖子创建时间的索引对帖子进行排序。
因为我不能一次加载所有帖子(因为理想情况下可以有数百万个),我加载前N个职位,然后当我向下滚动它加载更多的职位(使用 AJAX 请求)并将它们添加到页面底部。问题是,由于帖子是动态排序的,如果我只是限制帖子的数量,然后在以后的请求中偏移它们,我有时会得到两次相同的帖子,而有些帖子从来没有显示过。我该如何解决这个问题?
现在它只是用javascript检查每一个新帖子的id,它只是丢弃已经在页面上的帖子(检查页面上帖子的id),但我不喜欢它,因为每次它加载更多的帖子时,它都必须检查每一个帖子是否已经在页面上,如果帖子数量增加,它会变得非常缓慢。

hmae6n7t

hmae6n7t1#

如果您的服务器有很大的处理能力,并且您能够对过去的任何时间进行评分(例如,这次只考虑喜欢上一次),您可以让您的页面发送:(1)第一次加载的时间戳,以及(2)已经在那里的帖子的数量(或者,更好地,它接收的最差帖子的分数,因为帖子可能从那时起已经被删除)。
让服务器计算过去的列表并发送下一个帖子。
如果服务器的内存大于处理能力,那么只要有人请求,您就可以将评分列表的副本保存一段时间(1小时、24小时...)。
如果你想让服务器发送新的最佳帖子:如果你知道当前列表并且你知道用户已经得到了什么(具有他们的时间戳和他们得到的最后分数),你可以使服务器移除他们已经得到的并且给他们剩余的。

相关问题