javascript - 当 XMLHttpRequest 中止时会发生什么?

标签 javascript http browser xmlhttprequest abort

  • 中止的 XMLHttpRequest 是否仍会从服务器下载响应?
  • 请求生命周期中的什么点与常规请求不同?
  • 不同浏览器的行为是否不同?
  • 中止请求是不好的做法吗?

最佳答案

  • 不,下载将(应该)取消(至少在我的浏览器中)
  • When a request is aborted, its readyState is changed to XMLHttpRequest.UNSENT (0) and the request's status code is set to 0. -- MDN

  • 不,至少希望不会。他们应该关注the spec .
  • 在我看来,绝对不是。让您不再需要在后台运行的请求是对带宽和其他资源的浪费。中止它们要好得多。

两个最近的个人经验用例:

  • 包含用于过滤的各种参数的表格。根据选择的参数,生成的请求有时需要一段时间才能完成。如果您选择一组较慢的参数 A,然后在 A 完成之前选择一组快速的参数 B,您首先会在表中看到 B 的结果,但 A 最终会完成并“替换”表的内容所以你会突然看到 A。
    解决方案:在开始下一个请求之前中止上一个未完成的请求。
  • 带有有时会长时间运行请求的页面的 SPA,例如前面提到的表。当导航到另一个页面时,有时会在后台运行多个请求以获取不再需要的内容。
    解决方案:注册那些在卸载页面/组件时要中止的请求。

关于javascript - 当 XMLHttpRequest 中止时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39157737/

相关文章:

javascript - History.length 类方法有什么作用?

javascript - jQuery ajax 表单不起作用

javascript - 如何在ibm worklight中打开原生相机

javascript - 在 HTML 中单击滚动条的箭头时滚动的像素数

http - 如何从angular2中的WebMethod获取数据

SSL - 浏览器地址栏中的 EV 和 OV 区别

javascript - 如何在对底层 Div 产生模糊效果后获得模糊效果

java - 服务器返回 HTTP 响应代码 : 405 for URL

javascript - 在 Koa.js 中仅重定向未经身份验证的用户以查找丢失的资源?

CSS:将元素的宽度设置为(浏览器计算的宽度)+(20px)