从Visual Studio调试器运行MVC4网站时出现问题,如果页面打开太多,ajax请求需要很长时间才能开始发送。非常奇怪的是,如果我关闭其中一个页面,请求将立即开始。ajax请求很长的“等待”时间MVC4
更多详细信息... 框架:MVC 4 IDE:Visual Studio 2010中 浏览器:IE 9 /铬
控制器:
[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个浏览器。上面的调用立即从我的调试器启动的窗口执行,但是当我查看来自网络捕获的请求时,它会说“等待”,直到它最终超时。
现在有趣的部分是,如果我关闭任何一个窗口,我产生的请求将从挂起更改并转到我的控制器并按预期返回。多玩一会儿,如果我再试一次(不打开额外的浏览器),它会立即发送到服务器,但如果我打开第5个浏览器,则会再次变慢。我做了各种测试以确保特定窗口没有任何问题,它似乎是导致我的请求不被发送的5个浏览器的幻数。
以下是我关闭第5个浏览器窗口时成功请求的屏幕截图。
这里是我的请求头的捕捉
这里是我的响应头的捕捉
这里是我的计时
最主要的捕获我不明白为什么有46秒的等待期,然后是两个开始期。看起来第一个启动阶段是长期的,第二个启动阶段发生在我关闭第五个浏览器窗口时。
我试图提供尽可能多的细节以及数据以帮助诊断正在发生的事情。如果有什么我可以做的,以绘制更好的图片,随时发表评论。任何建议都会受到欢迎。
谢谢大家!
你没有真正解释这个'_save(model)'方法在你的控制器动作中实际做了什么。为了进一步调试这个问题,我将首先通过虚拟化控制器操作并摆脱这种'_save'调用。你现在可以观察到同样的行为吗?如果不是,那么显然这个问题出现在'_save'方法中。如果是的话,那么,这很奇怪。另外你怎么可能使用IE来做Web开发?尝试使用网络浏览器,而不是IE浏览器。 –
我不相信这是_save(模型),因为它甚至没有提出这一点,因为请求正在等待。如果我要删除这些代码,我仍然会遇到同样的问题。 – mvcNewbie