ASP.NET MVC + jQuery + IIS6 : Multiple Ajax requests

标签 asp.net jquery asp.net-mvc iis iis-6

不知道问题出在哪里...

我有一个 ajax 请求,用于检查带有包裹列表的页面上包裹的跟踪信息:

$(".fedex_status").each(function () {
    var item = this;
    // some code to construct tracking_url

    $.ajax({
        type: "GET",
        url: tracking_url,
        async: true,
        cache: false,
        success: function (data) { $(item).html("(" + data + ")"); },
        error: function () { $(item).html("request failed..."); }
    });
});

因此,如果页面上有 10 个包(10 个带有“fedex_status”类的东西),则会创建 10 个请求。请求工作正常,但一次返回一个结果(以串行方式)。我在 Controller 操作中向请求的开始和停止添加了时间戳:

public ActionResult Fedex(string trackingNumber)
{
    DateTime requestStart = DateTime.Now;
    TrackingService tracking = new TrackingService();
    string status = tracking.FedexTrackingNumberStatus(trackingNumber);
    return Content(status + " - " + requestStart.ToString("hh:mm:ss.FFF") + " - " + DateTime.Now.ToString("hh:mm:ss.FFF"));
}

没有任何时间戳重叠。因此 Controller 一次处理一个请求。这看起来很糟糕。

现在,ajax 请求“应该”是并行的。它肯定会立即返回(异步)。当我查看 IIS 日志时,请求的时间戳与 Controller 操作返回的时间戳相同。

所以我的问题是:jquery 是否不并行发送所有 ajax 请求,或者 IIS 或 ASP.NET 仅串行处理请求。我对 IIS 和 ASP.NET 的技术细节是个大菜鸟,所以也许它永远配置错误,并且每次只响应一个请求(仅内部使用,流量低)。也就是说,我在 jquery 方面也是个白痴,不知道如何测试请求何时被实际触发(我所知道的是 $.ajax 调用立即返回)。

谢谢!

最佳答案

理论上,启用 session 状态的 ASP.NET 会锁定每个用户请求的 session ,从而串行处理它们。我认为您不能轻松地禁用 MVC 项目的 Session,因为 TempData 例如默认使用 session 。不过你可以尝试一下。

编辑:这是一个 related question

关于ASP.NET MVC + jQuery + IIS6 : Multiple Ajax requests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/860478/

相关文章:

asp.net - app_themes css 文件和版本号

javascript - 我们如何在谷歌浏览器的每一页上打印表格标题

c# - MVC2 中的 Ajax.BeginForm 错误?? Ajax 用于发布到错误的 Controller ?

asp.net-mvc - MVC3 Razor View 中的三元运算符和检查属性

javascript - 仅当焦点位于文本框中时发出警报

asp.net - 如何在 ASP.NET Core 自定义标签助手中使用 View ?

c# - "sample"在探查器中代表多少秒?

javascript - 使用 jquery 将页面中所有文本框的数字向下舍入到最接近的整数?

c# - 如何在一行代码中转换和使用一个对象?

javascript - 在 PHP 中使用 AJAX 响应前置和覆盖类