作用:

1.没有 defer 或 async,浏览器会立即加载并执行指定的脚本,也就是说不等待后续载入的文档元素,读到就加载并执行。

2.async 属性表示异步执行引入的 JavaScript,与 defer 的区别在于,如果已经加载好,就会开始执行——无论此刻是 HTML 解析阶段还是 DOMContentLoaded 触发之后。需要注意的是,这种方式加载的 JavaScript 依然会阻塞 load 事件。换句话说,async-script 可能在 DOMContentLoaded 触发之前或之后执行,但一定在 load 触发之前执行。

3.defer 属性表示延迟执行引入的 JavaScript,即这段 JavaScript 加载时 HTML 并未停止解析,这两个过程是并行的。整个 document 解析完毕且 defer-script 也加载完成之后(这两件事情的顺序无关),会执行所有由 defer-script 加载的 JavaScript 代码,然后触发 DOMContentLoaded 事件。

区别

defer 与相比普通 script,有两点区别:载入 JavaScript 文件时不阻塞 HTML 的解析,执行阶段被放到 HTML 标签解析完成之后。
在加载多个JS脚本的时候,async是无顺序的加载,而defer是有顺序的加载。

转载于:https://www.cnblogs.com/leungUwah/p/10798585.html

script标签async和defer的区别及作用相关推荐

  1. script 标签 async 属性

    script 标签 async 属性 普通script 文档解析的过程中,如果遇到script脚本,就会停止页面的解析进行下载(但是Chrome会做一个优化,如果遇到script脚本,会快速的查看后边 ...

  2. script标签中async与defer的区别

    script标签内未设置async或者defer时: (1)script放在<head>,会阻塞HTML代码的解析和渲染,而放在<body>底部时,不会阻塞HTML代码的解析和 ...

  3. script标签中的defer和async属性

    默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到<script>标签就会停下来,等到执行完脚本,再继续向下渲染.如果是外部脚本,还必须加入脚本下载的时间. 如果脚本 ...

  4. script 标签上的 defer 和 async 属性是什么?

    我们经常使用 script 标签向页面插入一个常规的 JavaScript 文件: <script src="/path/to/script.js"></scri ...

  5. script 标签中的defer 和 async 属性

    浏览器在解析 HTML 的时候,如果遇到一个没有任何属性的 <script> 标签 ,就会暂停解析,先发送网络请求获取该 JS 脚本的代码内容,然后让 JS 引擎执行该代码,当代码执行完毕 ...

  6. HTML5 script 标签的 crossorigin 和integrity属性的作用

    Bootstrap 4 依赖的基础库中出现了两个新的属性 1 <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.slim ...

  7. html css integrity,HTML5 script 标签的 crossorigin 和integrity属性的作用

    Bootstrap 4 依赖的基础库中出现了两个新的属性 1 2 3 HTML5 新的规定,是可以允许本地获取到跨域脚本的错误信息,但有两个条件:一是跨域脚本的服务器必须通过 Access-Contr ...

  8. script标签的同步和异步

    1).把<script>标签放在<head>中意味着必须等到全部的js代码都下载解析和执行完成以后,才开始展现页面内容,为避免这个问题一般把js代码全部放在<body&g ...

  9. Script标签解析

    HTML4.01为Script定义了以下属性 async:表示异步下载脚本.只对外部脚本有效 defer:脚本可以延迟到文档完全被解析和显示之后再执行.只对外部脚本有效,IE7及更早的版本对齐也支持该 ...

最新文章

  1. GraphPad Prism 9.3 MacOS 2021科研绘图统计 支持Monterey 安装使用教程
  2. Spring MVC的表单控制器——SimpleFormController .
  3. 程序员怎么样保证自己的程序没有BUG
  4. 并发测试工具_性能测试工具基本工作原理及基本操作流程
  5. js html转为实体,字符串js编码转换成实体html编码的方法(防范XSS攻击)
  6. 请问学习前端最有效的办法是什么?
  7. (转)C# 控制蜂鸣器发声
  8. python做excel自动化-用python进行办公自动化都需要学习什么知识呢?
  9. FragmentActivity+FragmentTabHost+Fragement替代TabActibvity+TabHost+Activity
  10. ehcache 在web项目中使用
  11. 配电室智能监控系统设计及实现分析-Susie 周
  12. java实现控制台表格
  13. 小米发布会的米8探索者——很吓人的技术分析
  14. 费马小定理、欧拉定理总结
  15. amoeba mysql_Mysql 基于 Amoeba 的 读写分离
  16. springboot+教学工作量管理系统 毕业设计-附源码221541
  17. 问题 J: Frosting on the Cake
  18. SDP(Session Description Protocol)模型介绍(RFC3264)
  19. python控制台打印文字logo
  20. Linux nohup的作用

热门文章

  1. 线程同步之 生产者消费者模型详解
  2. String的内存分配与拼接操作,华为架构师深入讲解Java开发
  3. 字节跳动高工面试:mysql查询重复数据sql
  4. u盘插入后计算机内没有选项,U盘插到电脑,无法读取,属性里面空间全是0是怎么回事?...
  5. kafka创建topic_ELK-基础系列(六)-ELK加入消息队列-Kafka部署
  6. 高德地图怎么搜索marker_百度、高德、腾讯地图坐标认证怎么弄,3分钟轻松自助认证...
  7. Web Components 入门
  8. JavaScript内存那点事
  9. san mysql,高性能MySQL:SAN和NAS
  10. java 查找引用_java – Eclipse查找方法的引用