我研究过一个jquery插件,它使用经典的服务器端分页链接来创建“无限滚动”页面。
http://infiniteajaxscroll.com
这个想法看上去不错,而且杂乱无章,但我感兴趣的是,在这个例子中发生了什么:
假设我想分页一个相当酸化的页面,每分钟添加5-10个条目。我每页显示50个项目,每行5个项目,顶部显示最新的项目。一个用户来到该网站并加载第一页。他把第一页的信息读了几分钟。在此期间,又增加了12个项目。
当用户向下滚动时,jquery插件触发并预加载页面2。但是在此期间添加了12个新项,因此用户最终有以下选项:
第一种情况是不可接受的,所以让我们假设我们检测重复并动态删除它们。在这种情况下,我的网格变得丑陋了,因为我在每一行中列出了5项,而12项刚刚从通常的50项的提要中删除。因此,最后一页包含38个项,这意味着最后一行已满一半。
不用说,如果我有一个真正活跃的网站,并且在阅读期间添加了50个新项目,那么第二页将注入零结果。
这个问题..。有办法解决上述副作用吗?
谢谢!
发布于 2016-03-01 19:01:48
跟踪您在JS变量中加载的mostRecent和leastRecent提要项的ID。
无论何时提出请求,都要将这两个ID发送到服务器。
更多实现细节:
如果没有使用AJAX获取初始数据,则可以通过嵌入JS脚本轻松地初始化JS变量的值。就像这样
<script>
var infiniteScroll_ID = {
mostRecent: <?=$ID_of_mostRecent ?>,
leastRecent = <?= $ID_of_leastRecent ?>
}
</script> `否则,只需将它们初始化为+和-无穷大。
https://stackoverflow.com/questions/35731120
复制相似问题