我注意到这么多次,我不知道它为什么会这样
这个例子: 它全部用asp编写,缓冲,IIS 7,运营商级服务器,充满RAM和CPU
正如您在捕获时看到的那样,首先执行主页面,然后使用Jquery调用3个ajax脚本。
我必须在document.ready事件之前调用第一个,以便在其他2个之前回答它。
否则,如果同时调用3,则在最慢的执行完成之前,它们将无法得到答案。 两个持续时间在document.ready上调用。我们清楚地看到,当最慢的执行结束时,2开始响应。但是最轻的一个人会非常快,有些ms。
当我从应用程序下载一些文件时,也会发生这种情况。该应用程序使用bynarystream方法发送文件。当从浏览器客户端下载文件时,应用程序将不会回复任何其他浏览器请求(例如在另一个选项卡中),直到下载完成。
奇怪的是,您可以打开另一个浏览器(IE,Chrome ...),服务器会立即回复任何请求,但对于这个新浏览器也会采取相同的行动。此浏览器的任何请求都不能并行运行。
我知道ASP是一个古老的东西,但有人可以告诉我它为什么会这样吗?
是由于浏览器限制还是技术?由于会话机制?由于IIS?由于数据库访问(我相信没有,因为下载时流媒体内容不涉及数据库访问)? 它会以另一种方式为其他语言和环境工作吗?
我可以更改此行为吗?怎么样?
干杯
佛瑞德
答案 0 :(得分:10)
尝试并禁用GetListeDossier.asp的会话,我希望您的其他请求可以与此页面同时运行...
会话是单线程的,因此使用会话的页面只能按顺序处理。