Javascript加载顺序

Javascript加载顺序,javascript,performance,Javascript,Performance,这两种方法在加载顺序上是否存在差异?这方面有最佳实践吗 方法1: HTML 方法2: HTML 不,他们都是平等的。使用它们中的任何一个。不,它们都是相等的。使用它们中的任何一个。性能方面没有重大区别。如果性能是一个问题,您可以选择任何一个 在第一种方法中,如果test.js加载失败,您将得到一个未定义的错误方法,而在第二种方法中,将不会出现错误 所以,无论何时使用第一种方法的函数,都要检查该函数是否可用 或者在jQuery中,您可以将所有代码放入: $(document).ready(func

这两种方法在加载顺序上是否存在差异?这方面有最佳实践吗

方法1:

HTML

方法2:

HTML


不,他们都是平等的。使用它们中的任何一个。

不,它们都是相等的。使用它们中的任何一个。

性能方面没有重大区别。如果性能是一个问题,您可以选择任何一个

在第一种方法中,如果
test.js
加载失败,您将得到一个未定义的错误方法,而在第二种方法中,将不会出现错误

所以,无论何时使用第一种方法的函数,都要检查该函数是否可用

或者在jQuery中,您可以将所有代码放入:

$(document).ready(function(){/*do stuff here*/});

它将确保javascript已加载且DOM已准备就绪。

在性能方面没有重大差异,如果考虑性能,您可以选择任何一种

在第一种方法中,如果
test.js
加载失败,您将得到一个未定义的错误方法,而在第二种方法中,将不会出现错误

所以,无论何时使用第一种方法的函数,都要检查该函数是否可用

或者在jQuery中,您可以将所有代码放入:

$(document).ready(function(){/*do stuff here*/});

它将确保javascript已加载,DOM已准备就绪。

他们都在做相同的事情;将
window.test
设置为函数并执行该函数。在方法1中,由于浏览器按顺序执行脚本,因此当调用
test()
时,将定义
test
。在方法2中,由于
test
在代码执行之前,因此
test()
将成功


我更喜欢方法2而不是方法1,因为我可以知道调用
test
时在哪里定义了
test
,并且所有JS代码都在一个单独的文件中,而不是直接在HTML文件中;将
window.test
设置为函数并执行该函数。在方法1中,由于浏览器按顺序执行脚本,因此当调用
test()
时,将定义
test
。在方法2中,由于
test
在代码执行之前,因此
test()
将成功


我更喜欢方法2而不是方法1,因为我可以知道调用
test
时在哪里定义了
test
,并且所有JS代码都在一个单独的文件中,不是直接在HTML文件中。

将所有脚本放在结束正文标记之前。将所有脚本放在结束正文标记之前。感谢您的回答和您对首选方法的推理。感谢您的回答和您对首选方法的推理。感谢您从性能的角度来看,这是我最大的担忧。我特别好奇的是,方法2中的test()是否会等到DOM加载后再执行。感谢您从性能的角度来看它,这是我最关心的问题。我特别好奇的是,方法2中的test()是否会等到DOM加载后才执行。
<script src="test.js"></script>
test()

function test() {
    alert("Hello World!")
}           
$(document).ready(function(){/*do stuff here*/});