V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
0xvincebye
V2EX  ›  问与答

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

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

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

    上拉加载更多,则需要记住页码,每次往后取数据。
    2ME
        6
    2ME  
       2017-06-18 00:37:03 +08:00 via Android
    最简单的方法前端用 dataLazyLoad 这个 js 包 ajax 请求 后端返回 JSON
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5151 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 05:43 · PVG 13:43 · LAX 21:43 · JFK 00:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.