认识
2024年04月09日
一、认识
竞态条件Race Condition
在计算机科学中,指多个线程或进程在访问和操作共享资源时,由于执行顺序的不确定性导致的不稳定行为。在前端中,竞态条件Race Condition
, 频繁调用同一个接口,收到服务器数据的顺序并不一定是网络请求发送时的顺序。
前端同一个接口频繁调用, 在网络不好的情况下, 会发生一下场景:
-
场景一
: 当我们在请求列表数据的时候,在翻页的时候出现上次请求的时长大于最新请求的时长,出现了覆盖最新请求的数据的问题,造成了数据混乱、覆盖的问题。 -
场景二
: 在做项目时候发现,一个页面中有多个Tab
,每个Tab
对应的数据调用的是同一个接口,参数不同,在快送切换Tab
时,展示的是前一个请求返回的数据,造成了数据覆盖、混乱的问题。
竞态条件Race Condition
解决方案:
-
请求层面: 取消或者忽略上一个请求, 仅保留或者处理最新请求
-
交互层面: 切换
Tab
、点击分页时,每次点击后,做好防抖节流,等待接口返回可继续点击
我们只讨论 请求层面的解决 方案