我们每个屏幕都有许多 React Native组件渲染,并且由于许多同时的 http 请求而<Image>
目睹了性能问题。打开和关闭连接的成本很高,同时连接过多可能会遇到导致超时的限制。
HTTP/2 具有多路复用功能,允许客户端和服务器之间的多个请求和响应消息通过单个连接而不是多个连接同时运行,从而缩短了页面加载时间。
CloudFront 默认支持 HTTP/2、HTTP/1.1 和 HTTP/1,具体取决于客户端在请求标头中发送的版本。
我们注意到,我们的 React Native 应用程序正在发送 HTTP/1.1 作为<Image>
. 与流行的应用程序不同,我们为每个 GET 打开和关闭一个连接。我们如何确保 React Native Image 请求使用 HTTP/2 并共享连接?
(我们的图像都共享同一个 CloudFront 域。)
编辑 - 更多信息:
我们的 CloudFront 发行版支持 HTTP/2:
看来客户端和服务器在 h2 上达成一致: