gpt4 book ai didi

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

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

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

我有一个 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/

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