我已经注意到很多次了,我不知道为什么它会这样
对于这个例子:它都是用 asp 写的,缓冲在 IIS 7 上,运营商级服务器,充满了 RAM 和 CPU
正如您在捕获时看到的,首先执行主页,然后使用 Jquery 调用 3 个 ajax 脚本。
我必须在 document.ready 事件之前调用第一个,以使其在其他 2 个之前回答。
否则,如果同时调用 3 个,则在最慢的一个完成执行之前,它们不会得到响应。2 个鞋楦在 document.ready 中调用。我们清楚地看到,当最慢的一个执行结束时,2 开始响应。但是最轻的一个会非常快,一些毫秒。
当我从应用程序下载一些文件时也会发生这种情况。该应用程序使用 bynarystream 方法发送文件。从浏览器客户端下载文件时,应用程序不会响应任何其他浏览器请求(例如,我的意思是在另一个选项卡中),直到下载完成。
奇怪的是,您可以打开另一个浏览器(IE、Chrome...),服务器会立即响应任何请求,但对这个新浏览器的行为相同。来自此浏览器的任何请求都不能并行运行。
我知道 ASP 是一个古老的东西,但有人能告诉我为什么它会这样工作吗?
是因为浏览器限制还是技术?由于会话机制?由于 IIS?由于数据库访问(我相信不会,因为下载不涉及流式传输内容时的数据库访问)?它会以另一种方式适用于其他语言和环境吗?
我可以改变这种行为吗?如何 ?
干杯
弗雷德