<script src="a.js" defer></script>
加了defer属性script标签的页面,运行流程如下:
 
1.浏览器开始解析HTML页面
 
2.遇到有defer属性的script标签,浏览器继续往下面解析页面,且会并行下载script标签的外部js文件
 
3.解析完HTML页面,再执行刚下载的js脚本(在DOMContentLoaded事件触发前执行,即刚刚解析完</html>,且可保证执行顺序就是他们在页面上的先后顺序)
 
注意事项:
 
1.内置js代码的script标签,以及动态生成的script标签,defer属性不生效
 
2.有defer属性的script标签脚本文件里不能使用document.write方法
 
<script src="a.js" sync></script>
加了sync属性script标签的页面,运行流程如下:
1.浏览器开始解析页面
 
2.遇到有sync属性的script标签,会继续往下解析,并且同时另开进程下载脚本
 
3.脚本下载完毕,浏览器停止解析,开始执行脚本,执行完毕后继续往下解析
 
注意事项:
 
1.无法保证脚本的执行顺序,哪个脚本先下载完毕,就先执行哪个
 
2.也不能使用document.write方法
 
 
 
使用场景区分:
 
1.脚本之间没有依赖关系的,使用sync
 
2.脚本之间有依赖关系的,使用defer
 
3.若同时使用sync和defer,defer不起作用,sync生效

最新文章

  1. eclipse导入myeclipse的web项目没法识别问题解决
  2. 《理解 ES6》阅读整理:函数(Functions)(一)Default Parameter Values
  3. 一个关于qml插件的文章-转
  4. IPHONE 字体加粗
  5. Java [Leetcode 319]Bulb Switcher
  6. EF中使用数据库的标量值函数
  7. WebAppScaner
  8. Mac 生产力探究
  9. [leetcode-438-Find All Anagrams in a String]
  10. (10.20)Java小作业!
  11. JS URI Encode
  12. angular2 学习笔记 ( Dynamic Component 动态组件)
  13. PHP 查询脚本
  14. java引用
  15. B1004. 成绩排名
  16. lua -- io.exists
  17. C# int.ToString() 常用参数说明
  18. pytest 常用命令行选项(一)
  19. hash环/consistent hashing一致性哈希算法
  20. 31、Arrays数组排序(续)——自定义排序

热门文章

  1. Guava ---- EventBus事件驱动模型
  2. [译]IOS中AutoLayout布局与Transform的冲突问题
  3. SpringMVC之请求参数的获取方式
  4. mystr = &#39;{}{}{}&#39;.format(mystr, random.randint(0, 9), adurl)
  5. Bootstrap 模态窗口源码分析
  6. Bing必应地图中国API-画线与添加多边形
  7. bzoj4237 稻草人——分治
  8. java静态方法和实例化方法的区别(copy)
  9. JAVA POI的使用
  10. System.AppDomain类详解(二)