- 中止
XMLHttpRequest
是否仍会从服务器下载响应?
- 请求生命周期中的哪一点与常规请求不同?
- 不同浏览器的行为有何不同?
- 中止请求是不好的做法吗?
1 个答案:
答案 0 :(得分:0)
- 不,下载将(应该)(至少在我的浏览器中)取消
-
请求中止后,其readyState更改为XMLHttpRequest.UNSENT(0),并且请求的状态码设置为0。-MDN
- 不,至少希望不会。他们应该跟随the spec。
- 在我看来,绝对不是。让您不再需要在后台运行请求会浪费带宽和其他资源。最好放弃他们。
最近两个来自个人经验的用例:
- 具有用于过滤的各种参数的表。根据选择的参数,最终的请求有时需要一段时间才能完成。如果您选择了一组缓慢的参数A,然后在完成A之前选择了一组快速的参数B,则首先会在表中看到B的结果,但是A最终将完成并“替换”表的内容所以您会突然看到A。
解决方案::中止上一个未完成的请求,然后再开始下一个请求。
- SPA,其中页面有时会运行很长时间,例如前面提到的表。导航到其他页面时,有时会在后台运行一些不再需要的内容的请求。
解决方案:注册卸载页面/组件时要中止的那些请求。