Ajax请求由单个服务器线程提供?

时间:2011-04-07 04:07:14

标签: .net asp.net ajax

我在http://www.iqp.vn创建了一个简单的ajax框架,我允许用户发出许多ajax请求或取消它们。

但是从测试中我看到,当用户发出ajax请求做一些需要很长时间的事情,比如复制/写入一个大文本文件时,后续请求将等到第一个请求执行之前完成。在客户端上,我看到第二个请求虽然它执行非常快速的处理总是在第一个“大”请求完成后返回。

我还使用隐藏表单(iframe)提交,允许用户以ajax样式上传文件,当用户上传大文件,并取消请求(==重置客户端上的iframe),然后单击生成另一个请求,我看到后面的请求总是等待第一个上传请求完成。

任何人都可以帮我这个,我想使用ajax,并且(如果可能的话)在服务器上进行多线程处理,我可以在客户端获得一些非常好的效果。

2 个答案:

答案 0 :(得分:2)

Ajax请求被视为普通请求。你应该检查:

  • 在呼叫(客户端)之前,是否有ajax呼叫等待对方完成?
  • 您是否在服务器上实现了任何锁定机制?
  • 可能是线程池中的所有线程忙于其他请求

仅供参考,此jQuery插件可以同时上传多个文件:http://aquantum-demo.appspot.com/file-upload

答案 1 :(得分:0)

此行为取决于Web服务器的配置。如果您只有一个线程分配给应用程序池,那么该线程将为每个请求提供服务。