我知道对不同的脚本执行许多请求对性能不利,即我的脚本需要 30 个依赖项,因此 require.js 会为此发出 31 个请求。我可以使用 require 优化器并下载脚本包。
如果我使用 SPDY 并且仍然发出这 31 个请求,那么多路复用请求的能力会帮助我吗?不会在性能方面产生差异?
谢谢
当您使用 SPDY 时,多路复用请求的能力可能会提高您的性能。
原因是使用纯 HTTP,浏览器通常只能同时发出 6 个请求(假设所有 30 个脚本都将从同一个域下载)。然后浏览器必须等待至少一次网络往返才能执行第 7 个请求。根据您的客户端相对于您的服务器的位置,网络往返可能在 50 毫秒到 500 毫秒的范围内,有时甚至更长。
使用 SPDY,由于多路复用,可以一次发出所有 30 个请求。
此外,实现 SPDY Push 的 SPDY 服务器可能能够将 30 个辅助资源连同对主要资源(通常是 HTML 页面)的初始请求一起向下推送到客户端。
Jetty实现了 SPDY Push,您可以观看此演示,了解当您请求与主要资源关联的 20 多个辅助资源时 SPDY Push 的不同之处。