【发布时间】:2016-11-05 13:34:26
【问题描述】:
每次我把自己的js文件放在页面底部的时候,这个问题一直困扰着我。如果我将所有 js 文件放在关闭 body 标记之前的底部,那么我认为浏览器将首先下载所有 html 和样式表,然后它会解析 html 和 css,最后它会发送对 js 文件的请求。所以,
- 在已经位于底部的 js 文件上使用
defer会有什么不同吗? - 非延迟脚本是否在正文标记呈现阻塞之前的末尾?
我的另一个问题是我是否将所有 js 文件放在头部并在它们上使用defer。这是否相当于将所有js文件放在底部?浏览器会在head 中看到带有延迟的js 向服务器发出请求,然后继续下载其余的html 文件,还是仅在下载所有html 和css 后才向服务器发出请求?
据我所知async相当于defer,唯一的区别是js在下载时会执行,不考虑文件顺序。所以,
- 除了执行顺序之外,对已经位于底部的 js 文件使用
async会有什么不同吗?
【问题讨论】:
-
是的,defer 基本上类似于将标签放在正文的末尾。
标签: javascript html http deferred