jQuery Ajax – 针对ASP.NET MVC运行多个请求

我有一个“标签式”样式的网页,一旦页面加载每个标签,就会触发对其内容的Ajax请求(使用jQuery)。 后端是在Visual Studio中运行的ASP.NET MVC,因此只需使用正常的“ASP.NET Development Server”来处理请求。 我遇到以下问题:

1) 请求由Web服务器一次处理一个 。 第一个请求在第一个请求完成之前不会处理。 这是在某些单线程模式下运行的’ASP.NET Development Server’吗? 我可以让它multithreading(我应该让它multithreading还是会打开一个痛苦的世界?)

2) 长时间运行的请求会终止后续请求。 假设我一次一个地处理请求,即使我一次性关闭ajax请求,为什么有些请求甚至无法到达Web服务器? 一旦长期请求得到服务,就会发生这种情况。 例如:

  • 第一次请求(小请求) – 响应好
  • 第二次请求(大请求) – 响应需要一分钟左右但确实得到了服务。
  • 第3个请求(小请求) – 请求永远不会到达服务器,jQuery不报告错误。

我试过增加ajax超时但没有成功。


更新:我发现我的代码中的一个错误是弄乱了最终请求的URL,所以看起来这与请求长度和aj​​ax超时(blush!)无关。 一路上虽然我找到了有用的ajaxManager插件,如果你需要的话,它非常适合排队请求(http://www.protofunc.com/scripts/jquery/ajaxManager/)。 另外,感谢有关使用ASP.NET Dev Server进行测试的有效观点。 它确实与IIS完全不同。

关于第1点,请记住,如果您正在使用会话状态,则请求将不会同时执行 – ASP.NET将锁定会话状态,并且将仅处理每次使用一个请求的每个请求。 (有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms178581中的 “并发请求和会话状态”部分)尝试禁用会话状态(如果您当然没有使用它!)和看看是否有帮助。