gpt4 book ai didi

asp.net-mvc - Ajax 请求 MVC4 的时间很长 "Wait"

转载 作者:行者123 更新时间:2023-12-01 01:24:30 25 4
gpt4 key购买 nike

我在从 Visual Studio 调试器运行 MVC4 网站时遇到问题,如果打开的页面太多,则 ajax 请求需要很长时间才能开始发送。非常奇怪的是,如果我关闭其中一个页面,请求将立即开始。

更多详情...框架:MVC 4集成开发环境:Visual Studio 2010浏览器:IE 9/Chrome

Controller :

[Authorize]
[SessionState(SessionStateBehavior.Disabled)]
public class AnalyticsController
: Controller
{
public ActionResult SaveWorkspace( Workspace model)
{
var returnVal = _save(model);
return Json(new { actionResult = returnVal, messages = new string[] {} } );
}
}

我已经尝试过使用 AsyncController 和从 Controller 继承,得到相同的结果。

客户:

$.ajax({
url: '/Analytics/SaveWorkspace',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(workspace),
success: function (result) {
alert("Function Executed");
}
});

上面是我使用的ajax调用。我所做的就是单击网页上的各种链接,这将打开新窗口。对于我的测试,我从调试器打开了初始浏览器,并从我的主页生成了 5 个其他浏览器。上面的调用立即从我的调试器启动的窗口中执行,但是当我查看来自网络捕获的请求时,它会一直显示“待处理”,直到最终超时。

现在有趣的部分是,如果我关闭我生成的任何一个窗口,请求将从待处理状态更改为转到我的 Controller 并按预期返回。多玩一会儿,如果我再试一次(不打开其他浏览器),它总是会立即发送到服务器,但如果我打开第五个浏览器,它会再次变慢。我做了各种测试,以确保特定窗口没有任何问题,似乎是 5 个浏览器的神奇数字导致我的请求无法发送。

这是我关闭第五个浏览器窗口时成功请求的屏幕截图。 Success

这是我的请求 header 的捕获 enter image description here

这是我的响应 header 的捕获 enter image description here

这是我的时间安排 enter image description here

我真正无法理解的主要事情是为什么有 46 秒的等待期和两个启动期。看来第一次启动时间较长,第二次启动发生在我关闭第 5 个浏览器窗口时。

我尝试提供尽可能多的详细信息和数据,以帮助诊断正在发生的情况。如果我还能做些什么来描绘更好的图画,请随时发表评论。任何建议都将受到欢迎。

谢谢大家!

最佳答案

您可能会达到单个域的最大连接数限制,在 IE8 中为 6。 ( See here for details 。)我不确定 IE9,但由于还没有关于它的新闻稿,我认为它没有改变。根据 SO post 的说法,Chrome 中的值也是 6。您的 6 个浏览器窗口是否打开了任何长时间运行的请求,这可能会阻止第 7 个 ajax 调用?

同一篇 SO 文章说 Firefox 中的连接限制为 8,因此也许您可以尝试在其中运行该应用程序,看看问题是否仍然存在。

关于asp.net-mvc - Ajax 请求 MVC4 的时间很长 "Wait",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18003829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com