XMLHttpRequest中止时会发生什么?

问题描述 投票:4回答:1
  • 流产的XMLHttpRequest是否仍会从服务器下载响应?
  • 请求生命周期中的哪一点与常规请求不同?
  • 不同浏览器的行为有何不同?
  • 中止请求是不好的做法吗?
javascript http browser xmlhttprequest abort
1个回答
0
投票
  • 不,下载将(应该)取消(至少在我的浏览器中)
  • 请求中止时,其readyState更改为XMLHttpRequest.UNSENT(0),请求的状态代码设置为0. - MDN
  • 不,至少希望不是。他们应该关注the spec
  • 在我看来,绝对不是。如果您不再需要在后台运行请求,则会浪费带宽和其他资源。中止它们会好得多。

最近两个来自个人经历的用例:

  • 包含各种过滤参数的表。根据所选参数,生成的请求有时需要一段时间才能完成。如果您选择了一组参数A,然后在A完成之前快速设置参数B,您首先会在表中看到B的结果,但是A最终会完成并“替换”表的内容所以你突然看到了A. 解决方案:在开始下一个请求之前中止先前未完成的请求。
  • 具有有时长时间运行请求的页面的SPA,例如前面提到的表。当导航到另一个页面时,有时会在后台运行多个请求以查找不再需要的内容。 解决方案:在卸载页面/组件时注册要中止的请求。
© www.soinside.com 2019 - 2024. All rights reserved.