我如何处理许多(超过100)并行http请求与Silverlight在浏览器中运行

本文关键字:Silverlight 请求 浏览器 运行 http 何处理 处理 许多 超过 并行 | 更新日期: 2023-09-27 18:10:24

我必须用我的Silverlight应用程序做100个并行HTTP请求。不幸的是,并行连接受到浏览器的限制。

如果我启动进程,我启动所有请求并行。浏览器似乎只能并行处理大约10个连接(类似于最大连接数)。所以其他所有人都在等待。如果浏览器收到响应,它将处理下一个等待请求,依此类推。

我的问题是最后的等待请求永远不会被处理。有暂停吗?如果是,我可以控制超时吗?

如果我实现自己的超时定时器,我怎么启动它(Silverlight启动请求和浏览器处理请求之间似乎有一个差距)

我可以检测浏览器的"最大连接数"来将100个请求划分为更小的块吗?

我如何处理许多(超过100)并行http请求与Silverlight在浏览器中运行

现在我不建议这样做,但是如果您为同一服务器/网站创建多个子域名并均匀分配负载,则可以增加每台服务器10个额外呼叫。IE。Www1.domain.com、www2.domain.com等。你经常看到Bing和Google地图使用这种方法来快速加载许多磁贴。但正如其他人评论的那样,你的方法从一开始就是错误的。也许可以考虑只按需计算一行(即当用户请求计算特定行的时候)。使用TPL async/await扩展,也可以相当容易地将其分成n/10个队列并逐个处理。

您可以在本页找到最大连接数信息:http://www.browserscope.org/?category=network

检查BrowserInformation以适应chunk