【问题标题】:iFrames not executing in paralleliFrame 未并行执行
【发布时间】:2015-05-22 17:08:34
【问题描述】:

我们在页面上使用了 6 个 iFrame。它们从几个外部 Web 服务和一个内部 WCF 服务获取数据并显示数据。为每个 iFrame 构建了一个单独的 aspx 页面。从我们的性能监控中,我们发现在任何时候只有两个线程在并行执行。并非所有 6 个线程都被执行。这可能是什么原因?是否有不能并行创建超过 2 个线程的限制?有什么配置可以改吗?

【问题讨论】:

    标签: asp.net iframe parallel-processing


    【解决方案1】:

    IE6IE7 也是如此。与DNS无关。为了模拟这一点,在 IE 中同时运行三个或更多下载,你会发现一次只执行两个,其余的将等待。 Firefox 的不同情况,我认为是 6 - 值得检查。

    【讨论】:

      【解决方案2】:

      大多数网络浏览器都对同时用于渲染元素的线程数量设置了限制。我相信许多网络浏览器的默认值为 2。所以你看到的是正确的,浏览器本身一次只请求 2 个对象。

      【讨论】:

      • 感谢您的回复。 XMLHttpRequest 会解决问题吗?我想即使那样浏览器也会限制这一点。是否可以改变这种行为?
      【解决方案3】:

      大多数浏览器一次只会从每个域发出两个请求。

      如果请求不是无会话的,则服务器一次只处理来自每个用户的一个请求,来自同一用户的其他请求将排队。

      【讨论】:

      • 谢谢。有没有办法解决这个问题?
      • @KPK:你可以为你的域设置别名,让浏览器认为它们是独立的域。
      • 谢谢。我尝试使用 IIS 设置别名。但是我无法浏览到原始文件夹下的页面。我收到主机无法解决错误。我需要为此调整 DNS 吗?任何一步一步的文章都会有很大的帮助。谢谢
      【解决方案4】:

      IIS 对其将执行的并发线程数有上限,其余线程将排队等待前两个线程完成。我在使用回调时也遇到过这种现象。

      【讨论】:

      • 谢谢。有没有办法改变这种默认行为?
      【解决方案5】:

      如果您让 iframe 指向不同的 DNS,那么浏览器应该将它们全部并行化。

      请看这里:http://www.websiteoptimization.com/speed/tweak/parallel/

      【讨论】:

        【解决方案6】:

        我也有这个问题。您可能在 ASP.NET 中遇到了会话锁定。

        简而言之,将@Page 指令中的 EnableSessionState 设置为 ReadOnly。

        我从这个值得称赞的答案中找到了它:- IIS Express 7.5 not processing requests concurrently

        【讨论】:

          猜你喜欢
          • 2013-01-30
          • 1970-01-01
          • 2020-03-07
          • 2021-03-25
          • 1970-01-01
          • 1970-01-01
          • 2012-03-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多