javascript - 如果选项卡在 ajax 调用完成之前切换,它会影响其他选项卡。我该如何预防?
问题描述
我有 4 个不同的选项卡,每个选项卡每次打开时都会发出 ajax 请求。但是,如果我单击其中一个并且其 ajax 请求未完成,则新打开的选项卡会受到旧 ajax 请求的影响。
其中一个是打开的(让我们说第一个)
在返回 ajax 请求之前,我单击第二个选项卡。
第二个选项卡进行 ajax 调用
第一个的 ajax 调用完成,它改变了第一个选项卡的 html 内容,我在 ajax 调用完成后打开选项卡内容。因此,即使我在第二个选项卡上,由于第一个选项卡的 ajax 调用完成较晚,它会打开第一部分。我怎样才能防止这种情况?我希望旧选项卡的 ajax 调用消失、中止、不影响等。
我试图用布尔值添加条件,但它对我不起作用。
解决方案
您可以侦听browser.tabs.onActivated
事件并丢弃旧XMLHttpRequest
对象并创建一个新对象。
如果不了解您是如何实现 AJAX 调用的,就很难讨论细节。
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onActivated https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
推荐阅读
- objective-c - 如何以编程方式仅调整 NSWIndow 的一侧?
- reactjs - 它无法读取未定义的属性“id”,但我有一些值,不知道为什么它应该是未知的
- livecharts - 如何更改 LineSeries 的动画?实时图表.Wpf
- php - 如何在php中的echo中连接if语句?
- java - 使用流处理异常
- android - RewardedVideoAd 回调侦听器不匹配
- windows - 使用 Windows Media Foundation 枚举时如何获取硬件 ID
- java - orElseThrow 中的 lambda 表达式替代了什么?
- mysql - 使用 continue id(not null) 将现有行克隆到同一个表中
- javascript - 如何在 React 中的功能组件之间传递数据?