0

我正在寻找一种方法来调试 $.ajax 和 Controller 操作之间发生的事情。有没有办法查看这些延伸有多长以及它发生的地方是否有延迟(如果是网络,那么在哪里?)?

4

1 回答 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 回答