HTML页面中javascript文件的加载顺序[重复]

Posted

技术标签:

【中文标题】HTML页面中javascript文件的加载顺序[重复]【英文标题】:Order of loading of javascript files in an HTML page [duplicate] 【发布时间】:2011-12-11 18:55:47 【问题描述】:

可能重复:javascript Load Order

如果我们在 html 页面的标题中有许多脚本标签,那么它们是否有必要以串行方式呈现,或者它们可以以任何顺序重新呈现。更具体地说,我在 HTML 的头部有脚本标签,它们仅用于加载 .js 文件。现在,如果脚本标签更早出现,是否意味着它将更早呈现,并且在加载当前文件之前不会加载其他 .js 文件。此外,如果我们有两个同名的函数,那么通过将其中一个函数放在脚本标记(内联)中可确保在调用此重复名称函数时仅调用此函数。

谢谢, 杰克

【问题讨论】:

JavaScript 文件和代码按照定义的顺序加载/执行。以后的函数定义将覆盖现有的。 【参考方案1】:

加载java脚本的顺序是顺序

如果您使用将在本地脚本之后加载的任何跨域脚本(在同一域中移动脚本)

尝试将脚本放在 html 之前,否则脚本将覆盖变量

【讨论】:

【参考方案2】:

除非设置了async 属性,否则HTML 文档中的<script> 标记将按顺序执行。这是因为他们可以通过调用 document.write 来修改 HTML 文档(包括,例如,添加必须在原始 HTML 文档中的下一个脚本之前加载和执行的其他脚本)。

由于顺序无关紧要,您不应该使用document.write,而是使用 DOM(或使用 DOM 的库),您应该将脚本放在文档的底部。尽管后面的变量赋值(在 JavaScript 中,包括函数定义)会覆盖前者,但建议对函数使用不同的前缀,以免名称冲突,和/或使用私有变量,如下所示:

function f() 
  console.log("do one thing");


(function() 
  function f() 
    console.log("do another thing");
  
  f(); // prints "another"
)();

// The "another" function is not visible here.

【讨论】:

以上是关于HTML页面中javascript文件的加载顺序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我想按顺序加载3个js文件

jQuery 的ready事件和 JavaScript 的load事件对比

浏览器加载渲染HTMLDOMCSS JAVASCRIPTIMAGEFLASHIFRAMESRC属性等资源的顺序总结

Javascript加载执行顺序

对于HTML页面中CSS, JS, HTML的加载与执行过程的简单分析

html页面加载JS文件经常错误