我正在尝试通过从 HTTP11 迁移到 HTTP2 来优化新闻门户网站以及我们 CMS 中每页约 800-1000 个请求的大量请求。我预计 HTTP2 将使我的请求并行(如链接所示),但我的请求似乎仍然相当连续(附图)。我的问题的图片- 与这里不同,我们可以看到完全并行的请求:带有良好 http2 性能示例的问题
服务器是Caddy,但是因为跟node http2静态服务器是一样的,所以觉得别的也没什么用。
答案1
发起者大多数时候require.js
都是require.js
按顺序执行请求,而不是并行执行。
例如,模块解析的情况如下:require.js
需要moduleA
,因此对它发出请求;当moduleA
到达浏览器并进行解析时,它需要moduleB
,因此require.js
对 发出请求moduleB
;等等。
答案2
尝试使用 Firefox,因为这可能是由于 Chrome 中的这个错误造成的:https://stackoverflow.com/questions/45384243/google-chrome-does-not-do-multiplexing-with-http2/45775288#45775288
您还应该注意,许多实现限制了流的最大数量(例如,Apache 限制每次为 100 个流),因此即使您解决了问题,您也可能不会看到所有 800-1000 个请求同时发生(但应该比您现在看到的要好得多)。