背景:
似乎已经达成共识,即当前版本的Chrome的域级别并发连接限制为6-10(我很难找到有关确切限制的具体文档)
我的具体问题:
我正在开发一个向用户显示大量散点图并呈现为.png
图像的应用程序。当用户对特定图像进行GET请求时,服务器将动态生成图像并将其返回。有时这可能需要很长时间(> 10秒)。
我已经设置了适当的cache-control
标头,可以看到正在从磁盘缓存中正确检索先前生成的图像,并从我的Web服务器端检查,没有对服务器发出GET请求:< / p>
但是,当用户有10个以上的活动GET请求当前正在等待图像时,当用户导航回到缓存的图像页面时,我会遇到麻烦。即使图像在磁盘缓存中,它们仍然会排队/停顿:
我只是想知道是否有一种简便的方法-我考虑过许多不同的解决方案,包括部分取消图像请求,以及创建侦听多个子域或端口(例如{{ 1}},image1.foo.com
),但让我感到奇怪的是,Chrome的设计方式是,即使从磁盘缓存的图像也被排队在远程请求的图像后面。
只是想提一提,我也可能在实现过程中犯了一个错误,导致某些问题出了错,所以请让我知道这听起来是否还有一些时髦的事情。
编辑:此后,我已经验证了即使通过HTTP2提供图像,该行为也会发生。我最初怀疑并发连接限制,因为它仅适用于HTTP 1.1(所有图像请求应在HTTP2中的同一TCP连接上并行进行),但似乎存在某种与之无关的内置并发图像请求限制未完成的HTTP请求数(考虑到磁盘缓存的先前行为,这很有意义)