怎么实现类似微博那种往下拉就一直加载新的博文的功能?

2017-06-17 17:28:26 +08:00
 0xvincebye
之前弄得是分页通过把页码传到后台来从数据库调用
但是如果要实现那种一直往下拉的效果前端和后台应该怎么写呢
感觉那种往下拉的效果完全没有一个基准数来决定数据库调用呀?
求解答
2303 次点击
所在节点    问与答
6 条回复
ovear
2017-06-17 17:30:29 +08:00
不是重新载入第一页就好了么。。
0xvincebye
2017-06-17 17:45:28 +08:00
@ovear 重新载入第一页?那不是一直都是显示一样的东西吗?
RoundCat
2017-06-17 18:12:54 +08:00
我的做法是:
把页码存到一个变量里,js 监听滚动事件,到页面底部页码+1,ajax 从后台获取 json,然后生成并插入内容
em70
2017-06-17 18:28:45 +08:00
每次拉到页面底部会触发一个 js 事件,在这个事件里用 ajax 加载数据显示就行了
qiayue
2017-06-17 18:39:35 +08:00
你需要区分下拉刷新和上拉加载更多。

下拉刷新,每次给他最新的。
如果你下拉一次给出 20 条内容,但是实际库里边不止 20 条,你就需要写一些算法来处理了。
不同的产品有不同的处理逻辑,比如朋友圈,是一次性把所有最新的内容都给你。
微博则有未读池,先把最新的每次给你一些,直到最新的看完了,就把之前产生的但是你没读过的给你,这就是为啥微博时间线会乱。

上拉加载更多,则需要记住页码,每次往后取数据。
2ME
2017-06-18 00:37:03 +08:00
最简单的方法前端用 dataLazyLoad 这个 js 包 ajax 请求 后端返回 JSON

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/369144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX