如果我在一个页面上有多个JavaScript文件,它是否会始终在浏览器中连续加载?JavaScript是否在每个浏览器上串行加载?
<script src='test1.js'></script>
<script src='test2.js'></script>
<script src='test3.js'></script>
例如,如果test * .js会使用console.log写1,2和3,它会在每个浏览器上写1,2,3吗?
如果不是,有没有办法让它同步/连续?
如果我在一个页面上有多个JavaScript文件,它是否会始终在浏览器中连续加载?JavaScript是否在每个浏览器上串行加载?
<script src='test1.js'></script>
<script src='test2.js'></script>
<script src='test3.js'></script>
例如,如果test * .js会使用console.log写1,2和3,它会在每个浏览器上写1,2,3吗?
如果不是,有没有办法让它同步/连续?
我实际测试你的例子在下面的浏览器,其各自串联装:
Please read this exhaustive answer for more information on why.
例如,如果test * .js会使用console.log写1,2和3,它会在每个浏览器上写1,2,3吗?
是的。
浏览器可以并行加载脚本,但会始终按顺序执行脚本。在script
标记上设置async
或defer
属性时例外。动态创建的脚本(通过JS)本质上也是异步的。
请注意,在页面中放置太多脚本可能会降低渲染速度。如果服务器需要很长时间才能提供其中一个文件,因为script
下方的标记将不会被渲染,直到脚本加载并执行完毕。将生产环境中的所有JS文件缩减为单个文件并使用更多脚本标记(例如使用CDN托管的库)是一种很好的做法。
我相信是的,尽管我不能指出你的来源。但是如果它不会被连续加载,那么它是没有意义的,因为如果test2.js有依赖于test1.js的代码。如果不按顺序加载,会出错。 – kennypu 2013-02-25 09:10:07
你可以看看http://headjs.com/ – 2013-02-25 09:11:07
[HTML解析顺序/脚本执行顺序](http://stackoverflow.com/questions/7052310/html-parse-order-script-execution ) – JJJ 2013-02-25 09:11:12