|

楼主 |
发表于 2020-11-17 15:31:08
|
显示全部楼层
我在实际开发项目中有遇到过很多多次请求的问题,例如:
一款软件上方有多个分类tab,用户可以点击选中某个分类,然后发起网络请求,去请求其下的数据。
请求的数据都会在中间显示,如果请求失败了也会显示出失败信息。
如果不对请求做唯一性处理的话,就会出现用户选择了分类1后快速的选择分类2,如果在网络不好的情况下,有可能分类1的数据返回速度是低于分类2的。
那就会出现先显示了分类2的数据,然后过一会又显示出了分类1的数据,但此时用户其实只想看分类2的数据。
所以要么就请求分类2之前停止分类1的请求,要么就有种机制可以不去处理分类1的数据。
后者我想到的解决方案就是用ID的方式去处理。
至于用户快速的点击不同的分类,导致不断发起多次请求,我现在想到的一个比较好的解决方案是:
每次请求时,先判断上次请求是否结束,如果没有结束,并且跟上次发起请求之间间隔不超过0.5秒,就吧本次请求加入到一个list中,先不真正的去请求。
然后在内部开启一个时钟,等0.5秒后去执行list中的最后一次请求。
这样理论上可以解决用户疯狂点击不同分类所导致的短时间多次网络请求的问题。
不知道是否有更好的处理方案? |
|