1

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

如果我启动 Prozess,我会并行启动所有请求。浏览器似乎只处理大约 10 个并行连接(比如 max-connections)。所以其他人都在等待。如果浏览器收到响应,它会处理下一个 WAITING 请求,依此类推。

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

如果我实现自己的超时计时器,我该如何启动它(Silverlight 启动请求和浏览器处理请求之间似乎存在差距)。

我可以检测浏览器的“最大连接数”以将 100 个请求分成更小的块吗?

4

2 回答 2

1

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

于 2013-04-23T14:28:37.873 回答
1

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

检查BrowserInformation以适应块。

于 2013-04-24T12:46:12.523 回答