C# 在.ashx中同时处理多个$.ajax调用

C# 在.ashx中同时处理多个$.ajax调用,c#,asp.net,ajax,multithreading,C#,Asp.net,Ajax,Multithreading,我在GenericHandler.ashx中有以下方法: private void T1() { System.Threading.Thread.Sleep(2000); Ctx.Response.Write(Serializer.Serialize(new { foo = "bar" })); } 如果我同时对处理程序进行2个$.ajax-调用,我将在2秒后得到第一个响应,在4秒后得到下一个响应 有没有办法让我的GenericHandler.ashx同时处理两个ajax调用?

我在GenericHandler.ashx中有以下方法:

private void T1()
{
    System.Threading.Thread.Sleep(2000);
    Ctx.Response.Write(Serializer.Serialize(new { foo = "bar" }));
}
如果我同时对处理程序进行2个
$.ajax
-调用,我将在2秒后得到第一个响应,在4秒后得到下一个响应


有没有办法让我的GenericHandler.ashx同时处理两个ajax调用?

您需要在会话期间加载jquery.unobtrusive-ajax一次。检查是否已加载:

if (Request.Headers["X-Requested-With"] != "XMLHttpRequest")
{
    Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js");
}

在没有看到$.ajax的参数的情况下,我猜您需要将async设置为true

$.ajax({
   url: "page.ashx",
   async: true
});
另外,请注意,不同的浏览器会根据一次允许的请求数量做出不同的反应

.

在处理异步HTTP处理程序期间,ASP.NET将 通常用于返回外部进程的线程 直到处理程序收到来自线程池的回调为止 外部过程。这可以防止线程阻塞并提高性能 性能,因为只能执行有限数量的线程 同时,。如果许多用户请求同步HTTP处理程序 依靠外部进程,操作系统可以快速运行 由于许多线程被阻塞并等待 外部过程


当前方法的主体将位于所提供示例的
StartAsyncTask
方法主体中

我为什么要进行同步调用?$.ajax的要点是利用异步部分。您是用一个ajax调用两次来调用一个方法,还是在一个方法中一个接一个地调用两个代码块?我认为这种行为可能是因为它等待方法完成。请参阅:脚本具体将做什么?检查请求的头是否已经呈现了不引人注目的jquery文件。看看这个,你是认真的
Sleep
ing在一个web服务中吗?他在用它来测试我think@cHao是的,用于演示目的。