require.js将来如何使用http2?

时间:2017-06-12 00:00:37

标签: requirejs http2

构建应用程序时,最理想的是延迟加载模块,还可以根据需要将它们下载为批处理1文件。 Require.js支持异步延迟加载,但不支持批处理,但http2支持批处理。他们将来会在某个时候统一吗?

有人知道吗?

由于

1 个答案:

答案 0 :(得分:1)

HTTP / 2没有"批量"下载,因为它无法将多个文件批量组合在一起以便自动下载。

HTTP / 1.1上的HTTP / 2是多路复用和HTTP / 2推送。

通过多路复用,浏览器等客户端可以执行几乎无限数量的并发请求 - 而使用HTTP / 1.1时,它们通常只能执行6个并发请求。

通过HTTP / 2推送,服务器能够将与主要资源相关联的多个资源推送到客户端。

多路复用是协议中内置的,因此无需在客户端或服务器上进行配置。 需要在服务器上配置HTTP / 2推送。

xmlDoc.Elements("ControlSettings") .Descendants() .Select(e => e.Name.LocalName) .OrderBy(e => e) .ToList(); 将受益于HTTP / 2的这些功能,但并非require.js需要"支持"他们。

require.js发出下载模块的HTTP请求时,它将显示为普通的HTTP请求。 如果require.js需要下载10个以上的模块,使用HTTP / 1.1就会发出这些请求,但是浏览器基础设施本来只能同时发出其中的6个请求,然后就会等待一些请求。在发送更多请求之前回复;使用HTTP / 2可以同时进行所有请求。

使用HTTP / 2推送,require.js可以请求一个模块,服务器可能会发现它还需要N个其他模块(服务器将从先前的请求中学习请求模式,或者一个配置,告诉它其他模块是什么),服务器将HTTP / 2推送其他模块到客户端。

在这两种情况下,require.js都会自动从升级到HTTP / 2中受益。