连接javascript文件是否仍然有利
Is it still advantageous to concatenate javascript files?
是否对现代浏览器进行了任何分析,以确定脚本串联是否仍然有益?chrome似乎可以并行加载许多脚本,所以只要AMD依赖关系链很浅(或者所有依赖关系都是预先需要的),串联可能不会加快加载过程。我正在寻找实际的数据,但想法是受欢迎的。
对我来说,串联可能会减慢进程,因为现在可以并行编译多个脚本。
简短回答:
是的。
更长的答案:
每个额外请求的文件都会添加(所谓的开销):
- DNS查找-如果DN尚未缓存
- TCP握手
- HTTP请求本身
然后才开始文件的真正下载。
因此,通过连接可以保存这些因素,这些因素会在许多文件中累积起来。
就在今天,我看了Paul Irish关于这一点的一个有趣的演讲,我建议你看:;交货;
引用他的一张幻灯片:
大多数HTTP数据流由小的、突发的数据传输组成,而TCP则针对长寿命连接和大容量数据传输进行了优化。在大多数情况下,网络往返时间是TCP吞吐量和性能的限制因素。
因此,延迟是HTTP和大多数web的性能瓶颈。
你还必须考虑,并不是每个浏览器都像chrome一样并行加载那么多文件。我发现了一篇关于浏览器并行连接数量的SO文章(2013年)。
这当然是有益的。每个单独的javascript文件都是对服务器的请求。这需要时间,因为增加了开销。
您拥有的javascript文件越少,从服务器获取所有这些文件所需的时间就越短。
相关文章:
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 用于检查数组中是否存在元素的javascript自定义方法
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- javascript跨浏览器确定用户是否滚动到页面底部
- 是否可以用JavaScript显示等效的文件夹对话框
- 检查是否存在使用chrome扩展的javascript库
- 如何知道javascript for语句中的所有结果是否都是错误的
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 是否可以使用jquery或javascript将自动增量类添加到列表中
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- javascript数组元素是否知道其封闭数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 是否有任何设置阻止JavaScript在系统上工作
- 是否可以在javascript中读取IE中的本地文件
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配