@toc
背景
html加载流程是优化解析head内容,再进行内容渲染。js加载成功后相关的逻辑即会被执行。
问题点
- <script>在Head与在Body里有什么区别
- <script>添加的顺序有什么要求?
1、head中script特点
- 添加在head中的script会在解析head时进行加载,待js文件全部加载完毕后再进行内容渲染。js加载是单个进行的(最多2个同时加载),不能并发进行下载。
- 由于body没有被渲染之前执行head中的js,所以head中的script不能直接操作dom。如获取某个dom修改文本内容等, 在这个时机是获取不到dom的。
2、body中script特点
- 放到body底部的script,会在页面被渲染后进行下载执行,注意的事件可能在某些事件响应之后
- 放到body中间的script,会等待script下载完成并执行后再渲染后续的dom@toc
背景
html加载流程是优化解析head内容,再进行内容渲染。js加载成功后相关的逻辑即会被执行。
问题点
- <script>在Head与在Body里有什么区别
- <script>添加的顺序有什么要求?
1、head中script特点
- 添加在head中的script会在解析head时进行加载,待js文件全部加载完毕后再进行内容渲染。js加载是单个进行的(最多2个同时加载),不能并发进行下载。
- 由于body没有被渲染之前执行head中的js,所以head中的script不能直接操作dom。如获取某个dom修改文本内容等, 在这个时机是获取不到dom的。
2、body中script特点
- 放到body底部的script,会在页面被渲染后进行下载执行,注意的事件可能在某些事件响应之后
- 放到body中间的script,会等待script下载完成并执行后再渲染后续的dom