如何修复 pingdom 测试结果中的阻塞状态?

how do I fix Blocked state in pingdom test results?

我在页面中的所有脚本和图像上都在 pingdom 上收到(被阻止的 Web 浏览器未准备好发送)。这是怎么回事?我能做些什么吗?

这是我从 Pingdom 支持人员那里得到的答案: "It means that the web browser is waiting for other requests to complete before issuing a new one. A web browser is configured to have a maximum number of simultaneous connections to a single domain, so if there are many such connections/requests at the same time it can cause a block and slowdown of the page."

修复它的一种方法是,"Decreasing the number of components on a page reduces the number of HTTP requests required to render the page, resulting in faster page loads. Some ways to reduce the number of components include: combine files, combine multiple scripts into one script, combine multiple CSS files into one style sheet, and use CSS Sprites and image maps."(来自 Pingdom 提示 "Make fewer HTTP requests")。

正如 Nathan 所说,浏览器对每个主机名的并发连接数有硬性限制; Chrome 我想大约是六个。您有三种方法:解决该限制、增加它或使其无关紧要。

  1. 您可以合并所有资产,以便请求的需求符合浏览器限制(缩小 css、合并 JS 等)

  2. 您可以 "increase" 通过使用域分片来限制,这意味着例如从不同的子域加载您的资产。

    images.yourdomain.com
    css.yourdomain.com
    

    问题是这会增加 DNS 解析时间,因此只有在某些情况下才方便。

  3. 您可以启用像 http2 这样的协议,它为每个域打开一个连接,但在内部使用多路复用功能,允许它发出更多的请求,具体取决于客户端之间如何协商限制和服务器。