【发布时间】:2009-05-13 21:17:22
【问题描述】:
我不确定问题出在哪里......
我有一个 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 个请求。请求工作正常,但一次返回一个结果(以串行方式)。我在控制器操作中为请求的开始和停止添加了时间戳:
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"));
}
所有时间戳都不重叠。所以控制器一次处理一个请求。这看起来很糟糕。
现在,ajax 请求“应该”是并行的。它肯定会立即返回(它是异步的)。当我查看 IIS 日志时,请求的时间戳与控制器操作返回的时间戳相同。
所以我的问题是:jquery 是不是并行发送所有 ajax 请求,还是 IIS 或 ASP.NET 仅串行处理请求。我是 IIS 和 ASP.NET 技术细节的大菜鸟,所以它可能永远被错误配置,并且一次只响应一个请求(仅限内部使用,低流量)。也就是说,我也是 jquery 的白痴,不知道如何测试请求何时被实际触发(我所知道的是 $.ajax 调用立即返回)。
谢谢!
【问题讨论】:
标签: asp.net jquery asp.net-mvc iis iis-6