Javascript 我们是否坚持`<;脚本>;`是否在头部标记,假设我们’;您已经在使用'async'或'defer'?

Javascript 我们是否坚持`<;脚本>;`是否在头部标记,假设我们’;您已经在使用'async'或'defer'?,javascript,browser,script-tag,web-performance,Javascript,Browser,Script Tag,Web Performance,假设我们已经在使用async或defer,那么我们是否将标记粘贴在头部又有什么关系呢 所讨论的脚本标记用于分析。显然,将脚本标记放在其他任何地方都是很困难的,但我不在乎。正如您已经指出的,脚本标记属于标题。不这样做的唯一原因是,在处理html之前加载了脚本,导致渲染等待时间过长。这就是为什么很多人忽略了规范,而将脚本嵌入了底部。由于这不是一个好方法,编写规范的人引入了异步和延迟。所以没有理由将异步加载的代码放入主体中 旁注:并非所有浏览器都支持异步和延迟。因此,可能仍然使用旧的(非法的;))解决

假设我们已经在使用
async
defer
,那么我们是否将
标记粘贴在头部又有什么关系呢


所讨论的脚本标记用于分析。显然,将脚本标记放在其他任何地方都是很困难的,但我不在乎。

正如您已经指出的,脚本标记属于标题。不这样做的唯一原因是,在处理html之前加载了脚本,导致渲染等待时间过长。这就是为什么很多人忽略了规范,而将脚本嵌入了底部。由于这不是一个好方法,编写规范的人引入了异步和延迟。所以没有理由将异步加载的代码放入主体中


旁注:并非所有浏览器都支持异步和延迟。因此,可能仍然使用旧的(非法的;))解决方案…

Async是一个全新的解决方案。在正文末尾添加js是在预同步时间…@Jonasw afaik,如果您正在加载具有依赖项的库,则async仍然存在问题。@Beofett yep。但这与我们是否应该将异步加载的代码放入body中的问题无关?@Jonasw的确如此,但“在body末尾添加js是在预同步时间”有点暗示现在没有理由将js放在末尾。@Beofett在使用异步98%的美国浏览器时非常好!