多选框频繁修改导致请求后发先至的问题

56 阅读1分钟

多选框频繁修改导致请求后发先至的问题,就是假如请求A、B先后发送的时候,如果因为频繁点击或者网络波动,导致请求A在请求B后面完成,这样当请求B的结果回来的时候,页面拿到请求B的数据,并且渲染到页面内容上,但是当请求A的数据回来再渲染到请求A时,就会将过时的数据渲染到页面内容上,造成用户看到自己明明没有选错,但是结果是错的的情况。针对这个情况,我觉得可以有以下几种方案处理

a. 增加loading,当请求没有完成的时候,改变页面内容为一个loading,禁止用户重新点击。但是这样对用户体验破坏太大,被否决。

b. 增加节流,控制在多少毫秒以内处理一次请求,人为防止点击过快的问题。因为请求大多在500毫秒以内,所以控制节流间隔为500毫秒,当在这个间隔内频繁点击时,会出现提示框告诉用户点击过快,避免用户以为系统出现问题。

c. 维护一个请求队列,始终维持一个最新请求的标识,这样当返回的请求标识跟本地的不是最新的时候,就不做处理,不渲染到页面内容上。但是跟后端的老师交流之后,发现后端存储数据也有可能是过期的情况,所以这只能保证前端数据没有问题,不能保证后端,所以也被否决。