我正在评估脚本加载优化的现有资源,但是我在一些诸如
this的文章中阅读过,指的是较旧的浏览器阻止其他下载,直到完成此顺序脚本加载阶段.我检查Modernizr(yepnope.js),headjs和ControlJs作为候选人.但是,是否需要在现代浏览器中使用此工具来平行脚本加载?
解决方法
我认为默认情况下,大多数浏览器今天将实际并行加载脚本;但浏览器不会默认执行脚本并行.例如,在以下代码中,脚本将并行加载.在图像中,我们可以看到Fast1.js和Fast2.js加载速度非常快,但是根据浏览器控制台中的时间,Fast2.js在Fast1.js执行3秒后执行.
另外要注意的是,文件的顺序可以有所作为. Backbone.js文件取决于underscore.js文件.如果我们更改这些文件的顺序,其中bacbone.js是在underscore.js之前,会出现错误.
<html > <head> <title></title> <script src="scripts/fast1.js" type="text/javascript"></script> <script src="scripts/libs/jquery-1.8.3.js" type="text/javascript"></script> <script src="scripts/libs/underscore.js" type="text/javascript"></script> <script src="scripts/libs/backbone.js" type="text/javascript"></script> <script src="scripts/fast2.js" type="text/javascript"></script> </head> <body> Hello <script type="text/javascript"> console.log("html: " + Date()); </script> <img src="imgs/bImg.png" /> </body> </html>
以下是JavaScript文件Fast1.js和Fast2.js的代码
console.log("Fast 1: " + Date())
对于脚本加载,我使用Require.js.它还提供将代码组织到单个文件中的模块的好处.
这是我在浏览器脚本中创建的博客文章载入中:Browser Script Loading
以下是关于脚本加载的几篇文章: