javascript是否在每个浏览器上串行加载?

时间:2013-02-25 09:05:31

标签: javascript serial-processing

如果我在页面上有多个javascript文件,它是否会始终在浏览器中串行加载?

<script src='test1.js'></script>
<script src='test2.js'></script>
<script src='test3.js'></script>

例如,如果测试* .js使用console.log写入1,2和3,它是否总是在每个浏览器上写入1,2,3?

如果不是,有没有办法使它同步/串行?

2 个答案:

答案 0 :(得分:2)

我实际上在以下浏览器中测试了您的示例,每个浏览器都是按顺序加载的:

  • 火狐
  • IE 7-9
  • Safari浏览器

Please read this exhaustive answer for more information on why.

答案 1 :(得分:1)

  

例如,如果测试* .js使用console.log写入1,2和3,它是否总是在每个浏览器上写入1,2,3?

是的,它会。

浏览器可以并行加载脚本,但总是按顺序执行它们。例外情况是您在async标记上设置了deferscript属性。动态创建的脚本(通过JS)本质上也是异步的。

请注意,在页面中放置太多脚本可能会降低渲染速度。如果服务器花费的时间太长而无法提供其中一个文件,那么在脚本加载并执行之前,script下面的标记将不会呈现。优良作法是将所有JS文件简化为生成环境的单个文件,并使用更多脚本标记(例如使用CDN托管的库)。