javascript - 什么会导致 XMLHttpRequest 在浏览器默认超时之前挂起而没有错误?
问题描述
我是一名前端开发人员,对网络的工作方式了解有限。
当 Javascript 的 XMLHttpRequest 超时时,会触发ontimeout处理程序。
除非设置了XMLHttpRequest.timeout属性(现代浏览器支持),否则请求会等待浏览器的默认时间限制(在 Chrome 中为 300 秒 / 5 分钟)。
如果我向不存在的地址或已关闭的服务器发送请求,则会出现错误响应,对吗?
我的问题是,什么网络或服务器条件会导致请求挂起直到超时,而不是快速返回错误响应?
解决方案
在以下情况下调度XMLHttpRequest 超时 ProgressEvent :
在获取完成之前,作者指定的超时已经过去。
因此,导致请求挂起的网络或服务器条件基本上是任何导致长时间返回响应的情况。
- 慢速服务器
- 巨大的响应载荷
- 网络连接丢失
- 客户端网络连接慢
等等等等
如果我向不存在的地址或已关闭的服务器发送请求,则会出现错误响应,对吗?
不存在的地址可能会从您的 DNS 服务器返回错误,因此您应该很好。宕机的服务器不会做任何事情,它已经宕机了。在您的超时设置和您尝试访问的服务器的冗余之间会发生什么
推荐阅读
- javascript - 在线运行 Discord bot 时获取节点:error 错误
- python - 我该如何解决这个“str”对象不可调用;也许你错过了一个逗号?
- graphdb - 知识图谱的 ABAC 实现
- flutter - 如何在颤动中显示小部件的描述及其参数?
- xml - cvc-complex-type.2.4.a:发现以元素“团队”开头的无效内容。需要 '{"":Player}' 之一
- bash - 更改默认主题后 Git 出现问题
- javascript - axios拦截请求回调不起作用
- python - tensorflow-gpu = 2.0.0 的 keras.layers.StringLookup 的替代品
- android - 使用 Kotlin 协程通过循环并行多个 API 请求
- sql-server - SQL Server 根据字母扩展行