跳到主要内容

认识

2024年04月09日
柏拉文
越努力,越幸运

一、认识


竞态条件Race Condition 在计算机科学中,指多个线程或进程在访问和操作共享资源时,由于执行顺序的不确定性导致的不稳定行为。在前端中,竞态条件Race Condition, 频繁调用同一个接口,收到服务器数据的顺序并不一定是网络请求发送时的顺序。

前端同一个接口频繁调用, 在网络不好的情况下, 会发生一下场景:

  • 场景一: 当我们在请求列表数据的时候,在翻页的时候出现上次请求的时长大于最新请求的时长,出现了覆盖最新请求的数据的问题,造成了数据混乱、覆盖的问题。

  • 场景二: 在做项目时候发现,一个页面中有多个Tab,每个Tab对应的数据调用的是同一个接口,参数不同,在快送切换Tab时,展示的是前一个请求返回的数据,造成了数据覆盖、混乱的问题。

竞态条件Race Condition 解决方案:

  • 请求层面: 取消或者忽略上一个请求, 仅保留或者处理最新请求

  • 交互层面: 切换 Tab 、点击分页时,每次点击后,做好防抖节流,等待接口返回可继续点击

我们只讨论 请求层面的解决 方案