
现在的业务逻辑是 获取 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:2: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 这个问题 只能留给 接口解决了 |