script标签的加载是同步执行的,也就是说如果将JavaScript文件放在head标签中时,必须等所有JavaScript代码下载、解析和解释完毕后,才能开始渲染页面 (页面在解析到body标签时,开始渲染),这样的话,当js文件过多时,会导致渲染延迟,浏览器空白的情况,因此一般情况我们将js文件放在页面内容之后。并且提出了延迟执行脚本异步执行脚本,通过给script标签添加属性defer或者async来实现。

1.推迟执行脚本_defer

添加了defer属性的脚本会告诉浏览器,立即下载该脚本,但是等整个页面解析完毕后再运行。HTML5规范要求脚本按照出现顺序执行,即如果两个脚本都设置了defer属性,那么等页面解析完毕后,先执行第一个脚本,再执行第二个脚本。但是在实际中,推迟执行的脚本不一定会按照顺序执行,因此最好只有一个推迟执行脚本

2.异步执行脚本_async

添加了async属性的脚本会告诉浏览器,立即下载该脚本,且不阻止页面其他动作,即,不必等到脚本下载和执行完再加载页面,也不必等该异步脚本下载和执行后再加载其他脚本。因此,如果出现两个异步脚本,则不能确定它们的执行顺序。值得注意的是,异步脚本不应该在加载期间修改DOM

defer和async属性详解相关推荐

  1. python中文读音ndarray-numpy中的ndarray方法和属性详解

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  2. spring MVC请求处理类注解属性详解

    spring MVC请求处理类注解属性详解

  3. Meta http-equiv属性详解

    Meta http-equiv属性详解 博客分类: Web综合 HTML浏览器IECache搜索引擎  http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮 ...

  4. JavaScript Function.arguments 属性详解

    转载自   JavaScript Function.arguments 属性详解 arguments属性是正在执行的函数的内置属性,返回该函数的arguments对象.arguments对象包含了调用 ...

  5. vertical-align属性详解

    vertical-align属性详解:http://www.cnblogs.com/wcp-spring/archive/2013/03/04/2942456.html 关于vertical-alig ...

  6. border-sizing属性详解和应用

    box-sizing 用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型.它有 content-box . border-box 和 inherit 三种取值. inherit 指的是从父元素继 ...

  7. Flash播放控件属性详解

    Flash 播放控件属性详解 一.属性篇 1.AlignMode(读写)  语法:AlignMode As Long  说明:对齐方式(与SAlign 属性联动).当控件的长宽比例与影片不一致且WMo ...

  8. android layout_width 属性,android:layout_weight属性详解

    在android开发中LinearLayout很常用,LinearLayout的内控件的android:layout_weight在某些场景显得非常重要,比如我们需要按比例显示.android并没用提 ...

  9. html5 规定输入字段,HTML5 Input属性详解

    本篇教程探讨了HTML5 Input属性详解,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < value 属性 value 属性规定输入字段的初始值: rea ...

最新文章

  1. 经典算法学习——直接选择排序
  2. 多场景下的AI疫情防控“天网”:解读云边端联动下的全栈AI技术
  3. 电信应在短时间内放弃CDMA网络
  4. sklearn中train_test_split函数中的random_state有什么用?
  5. 查询oracle中所有用户信息
  6. 我看UNIX与Windows的本质区别
  7. 【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
  8. NoClassDefFoundError: org/mybatis/logging/LoggerFactory
  9. 构建Spring微服务并对其进行Dockerize生产
  10. jQuery数据表和Java集成
  11. python自增_python mysql自增字段AUTO_INCREMENT值的修改方式
  12. dubbo k8s 服务发现_将Dubbo微服务迁移到k8s集群环境中前的思考与落地
  13. 卡函数or1200基于simple-spi的SD卡驱动
  14. python2和python3同时安装
  15. 平行平板多光束干涉matlab,平行平板的多光束干涉.ppt
  16. ASP.NET人力资源管理系统源码大型HR源码
  17. 程序员如何提升自己的能力
  18. 微软快捷键截图_所有最好的Microsoft Excel键盘快捷键
  19. MPB:使用QIIME 2分析微生物组16S rRNA基因扩增子测序数据(视频)
  20. Python第三方库turtle画小人发射爱心

热门文章

  1. 经典|深入理解 Go高性能网络编程模型
  2. 实战能力|一文看懂GDB调试上层实现
  3. JAVA线程间协作:wait.notify.notifyAll
  4. 苹果公布WWDC20大会安排、Snapchat上线小程序功能、QUIC和HTTP/3 将定稿|Decode the Week...
  5. 6DoF视频:通往下一代高自由度视频体验
  6. IBM Cloud Video工程师Scott Grizzle谈流媒体协议和Codec
  7. 第一届WebRTCon在上海举行
  8. WebSocket使用案例
  9. 《Go语言圣经》学习笔记 第五章函数
  10. JVM之垃圾收集机制四种GC算法详解