0

我已经使用 ASP.NET Core 2.2 构建了一个 API 应用程序。

一切都很好。除了一个PATCHAPI,它需要一个 ID 和一个列表来替换相应项目的列表。

这个 API也适用于 POSTMAN。简单快速,按预期工作。

但是,要在浏览器上运行,发送该请求会延迟 1 分钟。

我试图通过仅在一个 jQuery 函数中重写应用程序来使其变得简单,以检查问题是否出在我的前端应用程序上;但是它仍然会停止 1 分钟。

我查了一下stalled,有人说同时加载最多 6 个请求可以是 Chrome 策略;但这不是我的情况。当时只有这样的请求,除此之外,其他所有 API 都可以正常工作。

另外,我尝试过其他浏览器:Firefox 和 Edge,但还是一样。

根据 Chrome 提供的文章:

  • 排队。浏览器在以下情况下将请求排队:
    • 有更高优先级的请求。
    • 已经为此源打开了六个 TCP 连接,这是限制。仅适用于 HTTP/1.0 和 > HTTP/1.1。
    • 浏览器在磁盘缓存中短暂分配空间
  • 停滞不前。请求可能因排队中描述的任何原因而停止。

似乎长时间“停滞”意味着请求未发送事件。这是否意味着我可以排除修复后端 API 的可能性?

还有,既然同时没有其他请求,那是不是很可能是“浏览器在磁盘缓存中短暂分配空间”的原因呢,还是有其他原因呢?

我也想知道为什么只有这个 API 会出现这个问题。方法“ PATCH ”有什么特别之处吗?

4

1 回答 1

0

首先使用秒表并评估您的代码在浏览器和邮递员中的响应时间,看看每个时间需要多长时间。如果两者相同,请不要触摸您的代码,因为您的问题不在于您的方法。如果可以,请使用“发布 http 属性”对其进行测试,直到知道您的问题是不是因为它。但是我想它的原因是你的系统。当然,通过更改管道 (startup.cs) 可能会解决 ypur 问题。还有像 CORS 这样的问题只发生在浏览器中而不是邮递员中。

于 2020-07-09T04:23:37.487 回答