问后端一个问题 : 社区帖子如何去避免重复显示 ? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HarryQu
V2EX    问与答

问后端一个问题 : 社区帖子如何去避免重复显示 ?

  •  
  •   HarryQu 2018-09-30 09:46:58 +08:00 2392 次点击
    这是一个创建于 2647 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是前端,一直有个疑问 :
    场景 : 移动端一次请求 20 个社区帖子, 用户滑动到底部加载更多,再次加载了 20 个帖子。
    问题 : 社区帖子是不断更新的,比如按回复时间排序,那么会出现一个问题,用户加载更多的 20 个帖子中会有重复的帖子,
    重复的帖子是第一次请求中已经出现的。
    App : acfun 文章区 、公司以前做社区的时候也出现过这种情况。
    9 条回复    2021-07-07 11:00:06 +08:00
    fazero
        1
    fazero  
       2018-09-30 10:12:33 +08:00 via iPhone
    第二次拉数据的时候,把第一次那 20 条中的最后那条帖子的 id 也当成参数传过去,后端从那 id 后面的数据返回给前端,第三第四次类推
    wbrobot
        2
    wbrobot  
       2018-09-30 10:14:24 +08:00
    前端存个 tid 数组, 取回来发现 tid 存在,不渲染就行了.
    HarryQu
        3
    HarryQu  
    OP
       2018-09-30 10:17:15 +08:00
    @fazero 照我的理解,帖子列表是在不断更新,顺序也在不断发生改变。直接传入最后帖子 id,依然有可能取回重复数据。
    murmur
        4
    murmur  
       2018-09-30 10:18:29 +08:00
    tid 有自增么?
    HarryQu
        5
    HarryQu  
    OP
       2018-09-30 10:21:45 +08:00
    @wbrobot 当然,前端可以处理重复数据。
    照我的想法用 LienkedHashSet java。
    我好奇这种情况,如果交由后端来处理的话是如何处理的?
    DCjanus
        6
    DCjanus  
       2018-09-30 10:22:43 +08:00 via Android
    看帖子排序规则。
    如果是按发帖时间,那每次拉的时候带上当前最后一条帖子时间即可。
    如果是按最后回复时间,那可以带上当前所有帖子中最新的一条回复的时间,后端过滤掉比这个时间更新的回复后排序。

    不过现实是,如果按最后回复时间,一般“重复”是个 feature。
    SaKuLa
        7
    SaKuLa  
       2018-09-30 11:25:32 +08:00
    我们这边都是前端去重
    z281874655
        8
    z281874655  
       2020-06-07 13:54:06 +08:00
    前端去重是真傻比
    lin2233
        9
    lin2233  
       2021-07-07 11:00:06 +08:00
    @DCjanus 大佬,帖子按你说的 [按最后回复时间,那可以带上当前所有帖子中最新的一条回复的时间,后端过滤掉比这个时间更新的回复后排序。] 。为什么还会出现重复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5264 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 01:25 PVG 09:25 LAX 17:25 JFK 20:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86