前端问一个无限滚动加载的问题

2020-04-25 18:18:20 +08:00
 chengxy

程序背景:主界面是一个可下拉无限加载的列表,辅助页面是对列表项做操作。

需求:在辅助页面删除数据后,回到主界面,主界面同时删除数据。

问题:当我删除了某条数据后再次去请求数据(下一页),这时后因为服务器文件少了一条,假如和正常一样发送请求( page * pageSize ),会少一条,怎么解决?

4782 次点击
所在节点    JavaScript
33 条回复
zpfhbyx
2020-04-26 12:50:02 +08:00
非广告, https://j4u.ink/iKVQQF 有无限下拉加载列表.. js 文件 https://j4u.ink/U3ZIXK
lazy21
2020-04-26 13:38:24 +08:00
使用发布订阅模式,辅助页面发布一个事件,列表监听同一个事件
wildnode
2020-04-26 13:55:23 +08:00
@chengxy 我们之前的一种做法是,不删除主页面的数据,通过 dispatch 一个事件将主页面中的那条数据标记为已删除,然后通过 UI 的方式告知用户这条被删掉了,不可操作。不知道你们能这样搞不。。
Yourshell
2020-04-26 14:02:28 +08:00
可以看一下 service worker
uchihaObito
2020-04-26 15:03:40 +08:00
是不是可以这样,声明一个 deleteCount,每次有删除的时候 deleteCount+1,然后请求下一条分页的时候 offset 传本来应该传的 offset-deleteCount,请求成功后 deleteCount 重新置 0
hoythan
2020-04-26 15:06:54 +08:00
后端改个毛,非常合理的设计,删除的时候你应该前端标记它让他不显示而已,页码还是正常的加载。
上拉刷新或者刷新的时候再取消标记
hoythan
2020-04-26 15:12:38 +08:00
记得防止无限滚动的时候占位别丢了就行。
VWMMWV
2020-04-26 15:19:22 +08:00
之前的做法都是返回后加载第一页的数据,看完你们的思路,觉得很好,就是不知道后端愿不愿意改
zhuojiu
2020-04-26 15:31:40 +08:00
状态删除不就行了吗?
uchihaObito
2020-04-26 15:56:25 +08:00
@zhuowenli 如果筛选条件的分页是不是就不能用 id 了
chengxy
2020-04-26 17:46:16 +08:00
@hoythan #27 是指的不发送删除请求吗,用户关闭了页面怎么办?
luoruiqing
2020-04-26 18:02:00 +08:00
置灰~
zhuowenli
2020-04-26 20:56:51 +08:00
@uchihaObito 是的,只适合流式分页

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

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

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

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

© 2021 V2EX