飞码网-免费源码博客分享网站

点击这里给我发消息

文件捆绑和HTTP/2: 最佳实践的再思考|-JavaScript教程

飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站

如今,几乎所有JavaScript应用程序都将利用构建过程。即使您不是从ES2015或TypeScript进行编译,在代码上运行某种串联和缩小过程也已成为标准做法。这样做的原因是,发出HTTP请求会涉及很多开销。提供较少的较大文件比许多较小的文件效率更高。随着Web基础协议的下一版本HTTP / 2的采用,可能是时候重新考虑最佳做法了。

HTTP / 2基于Google的SPDY协议,该协议旨在改善页面加载延迟并提高现有HTTP 1.1标准的安全性。新协议的工作始于2012年,第一个开发版本是SPDY的直接副本。最终标准于2015年5月发布,今年5月,Google宣布不再支持Chrome中的SPDY。

HTTP / 2与之前的版本有何不同?一个主要区别是HTTP / 2是一种二进制协议,而不是基于文本的协议。这使它更紧凑,解析效率更高,并且更不容易出错。该协议的主要优势之一是它是多路复用的,这意味着可以在单个连接上传输多个文件。另一个被吹捧的功能是服务器推送,它允许服务器在请求资源之前将资源传输到客户端,从而预先填充缓存。

对新协议的支持非常好,包括所有主要的浏览器。服务器端,Apache2,Nginx和Microsoft IIS都支持它,以及Node.js 5.0及更高版本。大多数浏览器供应商都表示,他们将仅支持基于TLS连接的HTTP / 2,尽管随着Let's Encrypt提供免费SSL证书的出现,这很容易满足。根据W3Techs在今年6月收集的数据,目前排名前1000万的网站中约有8.4%支持新协议。如果您是Chrome用户,则可以使用HTTP / 2和SPDY指示器扩展名一目了然地告诉您,您访问的哪个网站是通过HTTP / 2服务的。

HTTP / 2的采用对JavaScript开发人员意味着什么?我们目前将多个文件串联在一起的做法使浏览器很难有效地缓存我们的代码:在一个模块中更改一行代码需要重新下载整个捆绑文件。由于HTTP / 2的多路复用使请求相对便宜,因此我们可以选择将代码分成较小的包,并更好地利用缓存以确保我们的应用有效利用用户的带宽。

但是,如果要求便宜,我们当然应该完全放弃捆绑销售吗?乍一看似乎很合理,但是HTTP请求的成本并不是唯一要考虑的因素。Web服务器在处理大量文件方面的效率也受到限制。随着JavaScript社区朝着更小,更集中的模块方向发展,如果不进行某种捆绑将这些文件提供给客户端,将是不理想的。最重要的是,将文件合并在一起可以实现更好的压缩,节省带宽。

因此,您何时应该考虑切换到HTTP / 2?答案是,这取决于。尽管浏览器支持非常好,但是如果您的目标受众仍然停留在较旧版本的IE上,那么您就不走运了,因此请检查访问者的统计信息,以了解这是否会使大多数用户受益。我从所有这些中脱颖而出的是,新协议的支持和采用令人惊讶地遥遥领先,而且作为开发人员,这是我们不能忽视的趋势。

飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站
赞 ()

相关推荐

内容页底部广告位3
留言与评论(共有 0 条评论)
   
验证码: