问一个 tableviewcell 的问题

2019-02-13 09:01:52 +08:00
 h386926074

现在的业务逻辑是 获取 listmodel 后 还需要每个 modeL 根据 id 去走另个一个接口 ,拿到数据然后展示到 cell 上 如果拿到 listmodel 后先刷新 再异步走第二个接口后再刷新界面会跳动,请教各位 这种情况有没有好的办法

4750 次点击
所在节点    iDev
13 条回复
Damon4V
2019-02-13 09:10:20 +08:00
可以单个刷新 cell 的。可以去试试
h386926074
2019-02-13 09:12:12 +08:00
确实是单个刷新的 因为是第二次是异步获取数据 然后单个刷新 就会出现刷新混乱的问题
h386926074
2019-02-13 09:12:56 +08:00
@Damon4V 确实是单个刷新的 因为是第二次是异步获取数据 然后单个刷新 就会出现刷新混乱的问题
knightlhs
2019-02-13 09:20:29 +08:00
多线程,同时获取数据,返回后统一渲染
uyz
2019-02-13 09:24:30 +08:00
要不试一下缓存,缓存当前屏、上 /下一屏的数据,这样就只有一次刷新了;缓存机制实现起来麻烦些
h386926074
2019-02-13 09:26:43 +08:00
@knightlhs 这种网络环境不确定 可能会导致获取数据时间很长吧 10 条数据 就需要走 11 个网络接口
laobaozi
2019-02-13 09:32:45 +08:00
只要 cell 的高度变化,reload 界面就会跳动

如果能改造接口,就把第二个接口返回的数据合并到第一个接口中
否则
简单粗暴的搞法就是在 listmodel 返回后,再马上请求所有 cell 需要的第二份数据并缓存, 只有在两个接口都返回后再刷新 tableView
weirdyu
2019-02-13 09:42:45 +08:00
接口设计不合理,第二个传一组 id 也比你这样一个个请求强啊
90928yao
2019-02-13 09:54:14 +08:00
这接口是不是有点问题。你 cell 要是很多 难道请求一直发吗。。。
h386926074
2019-02-13 15:42:20 +08:00
@90928yao 这接口的确很坑啊 本来是一次请求 ,并在一块的 ,但服务器这个接口查询时上也先查两个地方,导致客户端拉接口很慢,才分开,等于把坑甩到客户端处理了
misaka20
2019-02-13 17:49:10 +08:00
这种客户端不需要解决,就是强制让接口端解决
shzcaptain
2019-02-13 18:29:40 +08:00
当然是服务端组装好数据给客户端渲染了,一个页面多次渲染不仅是跳的问题,性能也会有很大的问题。
h386926074
2019-02-15 10:18:05 +08:00
@shzcaptain @misaka20 这个问题 只能留给 接口解决了

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

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

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

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

© 2021 V2EX