H5的订单详情取消订单后返回native订单列表,订单列表状态没有刷新?

273 阅读2分钟

起因:最近解决一个bug:H5的订单详情取消订单后返回native订单列表,订单列表状态没有刷新

解决了但又没有完全解决,因为我简单粗暴的每次viewWillAppear时都重新请求列表数据。

这么解决有什么问题?

  1. 没有针对性,存在多余的请求,订单详情页面没有操作的时候,回到订单列表是不是就不用刷新呢?
  2. 每次请求都会出现loading动画,体验不好;第一次进订单列表的时候页面需要有loading动画;如果是从订单详情返回就有点奇怪了
  3. 订单列表如果存在分页,当用户进入的是第N页的某个订单详情时,返回订单列表会重新回到第一页。因为重新请求订单列表都是从第一页开始的。这体验就更奇怪了

怎么解决更好?

  1. 针对性:和H5约定方法,需要刷新订单列表时,由H5调用方法通知native,native记录好,等返回订单列表时根据H5设置的值来决定是否要刷新
  2. loading动画做好区分:全页面的和局部加载,当局部加载的时候,在合适的位置显示loading动画
  3. 订单列表分页怎么办?和H5约定的方法把订单号传过来,调用单个订单的接口,数据回来后替换掉原来订单列表里的此订单数据,然后再刷新页面;这样就不会影响分页了,体验更好

总结

  1. bug的解决可以是临时的表面的,也可以是根本的彻底的,精益求精才能越来越好,技术越来越扎实,多角度考虑,比如分页刷新问题,在测试时可能没有那么多订单,就容易忽略了
  2. UI稿是静态的,但运行起来的程序、数据、用户的操作等是动态的,测试要充分,交互场景要考虑全面