首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为ajax无限滚动使用服务器端分页链接

为ajax无限滚动使用服务器端分页链接
EN

Stack Overflow用户
提问于 2016-03-01 18:56:48
回答 1查看 720关注 0票数 0

我研究过一个jquery插件,它使用经典的服务器端分页链接来创建“无限滚动”页面。

http://infiniteajaxscroll.com

这个想法看上去不错,而且杂乱无章,但我感兴趣的是,在这个例子中发生了什么:

假设我想分页一个相当酸化的页面,每分钟添加5-10个条目。我每页显示50个项目,每行5个项目,顶部显示最新的项目。一个用户来到该网站并加载第一页。他把第一页的信息读了几分钟。在此期间,又增加了12个项目。

当用户向下滚动时,jquery插件触发并预加载页面2。但是在此期间添加了12个新项,因此用户最终有以下选项:

  • 列表中的重复项目(第2页现在包含第1页中的12项)
  • 如果插件能够理解项目是重复的,插件可能会删除重复项,只留下新的项。

第一种情况是不可接受的,所以让我们假设我们检测重复并动态删除它们。在这种情况下,我的网格变得丑陋了,因为我在每一行中列出了5项,而12项刚刚从通常的50项的提要中删除。因此,最后一页包含38个项,这意味着最后一行已满一半。

不用说,如果我有一个真正活跃的网站,并且在阅读期间添加了50个新项目,那么第二页将注入零结果。

这个问题..。有办法解决上述副作用吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-03-01 19:01:48

跟踪您在JS变量中加载的mostRecent和leastRecent提要项的ID。

无论何时提出请求,都要将这两个ID发送到服务器。

  • 如果加载的提要项较少,则使服务器返回ID < leastRecent的提要项
  • 如果您正在加载更多最新的提要项,则让服务器返回ID > mostRecent的提要项
  • 根据服务器的响应更新变量。

更多实现细节:

如果没有使用AJAX获取初始数据,则可以通过嵌入JS脚本轻松地初始化JS变量的值。就像这样

代码语言:javascript
运行
复制
<script> 
    var infiniteScroll_ID = {
        mostRecent: <?=$ID_of_mostRecent ?>, 
        leastRecent = <?= $ID_of_leastRecent ?> 
    }
</script> `

否则,只需将它们初始化为+和-无穷大。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35731120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档