4

我已经注意到很多次了,我不知道为什么它会这样 萤火虫捕获

对于这个例子:它都是用 asp 写的,缓冲在 IIS 7 上,运营商级服务器,充满了 RAM 和 CPU

正如您在捕获时看到的,首先执行主页,然后使用 Jquery 调用 3 个 ajax 脚本。

我必须在 document.ready 事件之前调用第一个,以使其在其他 2 个之前回答。

否则,如果同时调用 3 个,则在最慢的一个完成执行之前,它们不会得到响应。2 个鞋楦在 document.ready 中调用。我们清楚地看到,当最慢的一个执行结束时,2 开始响应。但是最轻的一个会非常快,一些毫秒。

当我从应用程序下载一些文件时也会发生这种情况。该应用程序使用 bynarystream 方法发送文件。从浏览器客户端下载文件时,应用程序不会响应任何其他浏览器请求(例如,我的意思是在另一个选项卡中),直到下载完成。

奇怪的是,您可以打开另一个浏览器(IE、Chrome...),服务器会立即响应任何请求,但对这个新浏览器的行为相同。来自此浏览器的任何请求都不能并行运行。

我知道 ASP 是一个古老的东西,但有人能告诉我为什么它会这样工作吗?

是因为浏览器限制还是技术?由于会话机制?由于 IIS?由于数据库访问(我相信不会,因为下载不涉及流式传输内容时的数据库访问)?它会以另一种方式适用于其他语言和环境吗?

我可以改变这种行为吗?如何 ?

干杯

弗雷德

4

1 回答 1

10

尝试禁用 GetListeDossier.asp 的会话,我希望您的其他请求将与此页面同时运行...

会话是单线程的,因此使用会话的页面只能按顺序处理。

于 2012-10-11T20:10:22.380 回答