现在的业务逻辑是 获取 listmodel 后 还需要每个 modeL 根据 id 去走另个一个接口 ,拿到数据然后展示到 cell 上 如果拿到 listmodel 后先刷新 再异步走第二个接口后再刷新界面会跳动,请教各位 这种情况有没有好的办法
1
Damon4V 2019-02-13 09:10:20 +08:00
可以单个刷新 cell 的。可以去试试
|
2
h386926074 OP 确实是单个刷新的 因为是第二次是异步获取数据 然后单个刷新 就会出现刷新混乱的问题
|
3
h386926074 OP @Damon4V 确实是单个刷新的 因为是第二次是异步获取数据 然后单个刷新 就会出现刷新混乱的问题
|
4
knightlhs 2019-02-13 09:20:29 +08:00
多线程,同时获取数据,返回后统一渲染
|
5
uyz 2019-02-13 09:24:30 +08:00
要不试一下缓存,缓存当前屏、上 /下一屏的数据,这样就只有一次刷新了;缓存机制实现起来麻烦些
|
6
h386926074 OP @knightlhs 这种网络环境不确定 可能会导致获取数据时间很长吧 10 条数据 就需要走 11 个网络接口
|
7
laobaozi 2019-02-13 09:32:45 +08:00
只要 cell 的高度变化,reload 界面就会跳动
如果能改造接口,就把第二个接口返回的数据合并到第一个接口中 否则 简单粗暴的搞法就是在 listmodel 返回后,再马上请求所有 cell 需要的第二份数据并缓存, 只有在两个接口都返回后再刷新 tableView |
8
weirdyu 2019-02-13 09:42:45 +08:00
接口设计不合理,第二个传一组 id 也比你这样一个个请求强啊
|
9
90928yao 2019-02-13 09:54:14 +08:00
这接口是不是有点问题。你 cell 要是很多 难道请求一直发吗。。。
|
10
h386926074 OP @90928yao 这接口的确很坑啊 本来是一次请求 ,并在一块的 ,但服务器这个接口查询时上也先查两个地方,导致客户端拉接口很慢,才分开,等于把坑甩到客户端处理了
|
11
misaka20 2019-02-13 17:49:10 +08:00
这种客户端不需要解决,就是强制让接口端解决
|
12
shzcaptain 2019-02-13 18:29:40 +08:00
当然是服务端组装好数据给客户端渲染了,一个页面多次渲染不仅是跳的问题,性能也会有很大的问题。
|
13
h386926074 OP @shzcaptain @misaka20 这个问题 只能留给 接口解决了
|