保持脚本正确
</body>。在某些情况下,异步可以与位于此处的脚本一起使用(请参见下面的讨论)。Defer不会对位于此处的脚本产生太大的影响,因为DOM解析工作几乎已经完成。
如果您将脚本放在正文的末尾,则HTML将在较早的浏览器中显示得更快
</body>。因此,为了保持旧版浏览器的加载速度,您不想将它们放置在其他任何位置。
如果您的第二个脚本依赖于第一个脚本(例如,您的第二个脚本使用第一个脚本中加载的jQuery),那么在没有其他代码来控制执行顺序的情况下就无法使它们异步,但是您可以使它们延迟,因为延迟脚本会仍然可以按顺序执行,只是直到文档被解析之后。如果您具有该代码,并且不需要立即运行脚本,则可以使它们异步或延迟。
您可以将脚本放入
<head>标记中并将其设置
defer为,脚本的加载将推迟到DOM被解析之前,并且将在支持defer的新浏览器中快速显示页面,但对您完全没有帮助。在较旧的浏览器中,它并没有比
</body>在所有浏览器中都能正确使用脚本快得多。因此,您可以了解为什么最好将它们放在前面
</body>。
当您真的不在乎脚本何时加载,并且用户依赖的其他任何内容都不依赖于脚本加载时,异步会更有用。引用次数最多的使用异步的示例是Google
Analytics(分析)之类的分析脚本,您不需要等待任何东西,而且也不是迫切需要立即运行,而且它独立存在,因此没有其他依赖于此的脚本。
通常,jQuery库不是异步的理想选择,因为其他脚本依赖于它,并且您想安装事件处理程序,以便页面可以开始响应用户事件,并且您可能需要运行一些基于jQuery的初始化代码来建立初始状态。页面的
可以异步使用它,但必须对其他脚本进行编码才能在加载jQuery之前执行。



