鉴于HTTP2(和SPDY)中连接重用和多路复用的优势以及gzip压缩的可用性,是否有必要在构建过程中添加缩小和合并步骤?
鉴于HTTP2(和SPDY)中连接重用和多路复用的优势以及gzip压缩的可用性,是否有必要在构建过程中添加缩小和合并步骤?
测试是决定是否在通过H2/SPDY提供资源时缩小和/或合并的唯一真正手段。
HTTP/2(H2)的理念是通过流(一个单一多路复用TCP连接)提供小型静态资源。测试表明,“大多数”网站通过不合并资源(甚至不使用CDN)可以获得速度提升。这完全取决于在H2/SPDY上提供的资源大小。我见过一些网站在不改变任何内容的情况下,其速度提高了30%以上,而其他网站则没有任何变化。
基于此,我的建议是通过缩小所有资源并不进行合并来进行测试。我还建议测试提供所有常见资源(不使用CDN - 这也取决于您的客户在哪里)。
资源:
是的,你仍然需要对js和css文件进行缩小和合并,原因如下:
脚本缩小和SPDY压缩不同。一个好的缩小器知道如何利用局部作用域,并用短重复的名称替换冗长的变量名,这些名称易于压缩。
SPDY将您的请求组合在一起,因此您无需将脚本拼接在一起。但并非所有浏览器都支持SPDY。
SPDY 2和3不兼容。当浏览器支持2且服务器广告3时,连接会回退到通过SSL的HTTP 1.1;根本没有SPDY的好处。
通过一个请求加载10个文件仍然会在服务器端产生10个获取。合并文件可以减少磁盘I/O。
你的问题类似于“现在机器运行得更快了,我还需要关心编写高效代码吗?”
答案是否定的。不要偷懒。正确编码。