我正在寻找一种方法来调试 $.ajax 和 Controller 操作之间发生的事情。有没有办法查看这些延伸有多长以及它发生的地方是否有延迟(如果是网络,那么在哪里?)?
问问题
1351 次
1 回答
0
这是您可以尝试的一种方法来隔离问题。您启动一个全新的ASP.NET MVC 应用程序并放置一个模拟某些工作的控制器操作:
public ActionResult SetSearchResults(SearchCriteria searchCriteria)
{
Thread.Sleep(400);
return Json(new { success = true });
}
然后你用 AJAX 调用它:
$.ajax({
contentType: 'application/json, charset=utf-8',
type: "POST",
url: '@Url.Action("SetSearchResults")',
data: JSON.stringify({ }),
cache: false,
success: function (response) {
}
});
然后观察在您的 javascript 调试工具中执行 AJAX 请求所需的时间(我使用的是 Chrome 开发人员工具栏,但如果您愿意,也可以使用 FireBug):
405 毫秒。太好了,我想这个数字不会让任何人感到惊讶。如果你得到一个不同的号码,你可能会开始严重担心。但我怀疑你会得到一个不同的号码。所以问题既不来自 ASP.NET MVC 也不来自 AJAX。
那是准系统。现在你可以开始为你的控制器动作添加一些真正的工作,通过使用数据库调用和其他东西来塑造它,直到你找到确凿的证据。逐步添加内容。首先手动实例化您的存储库类,然后如果您正在使用 DI 框架,请稍后添加,等等... 一次执行一步非常重要。
于 2012-07-21T07:42:25.063 回答