script标签async和defer的区别及作用
作用:
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的区别及作用相关推荐
- script 标签 async 属性
script 标签 async 属性 普通script 文档解析的过程中,如果遇到script脚本,就会停止页面的解析进行下载(但是Chrome会做一个优化,如果遇到script脚本,会快速的查看后边 ...
- script标签中async与defer的区别
script标签内未设置async或者defer时: (1)script放在<head>,会阻塞HTML代码的解析和渲染,而放在<body>底部时,不会阻塞HTML代码的解析和 ...
- script标签中的defer和async属性
默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到<script>标签就会停下来,等到执行完脚本,再继续向下渲染.如果是外部脚本,还必须加入脚本下载的时间. 如果脚本 ...
- script 标签上的 defer 和 async 属性是什么?
我们经常使用 script 标签向页面插入一个常规的 JavaScript 文件: <script src="/path/to/script.js"></scri ...
- script 标签中的defer 和 async 属性
浏览器在解析 HTML 的时候,如果遇到一个没有任何属性的 <script> 标签 ,就会暂停解析,先发送网络请求获取该 JS 脚本的代码内容,然后让 JS 引擎执行该代码,当代码执行完毕 ...
- HTML5 script 标签的 crossorigin 和integrity属性的作用
Bootstrap 4 依赖的基础库中出现了两个新的属性 1 <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.slim ...
- html css integrity,HTML5 script 标签的 crossorigin 和integrity属性的作用
Bootstrap 4 依赖的基础库中出现了两个新的属性 1 2 3 HTML5 新的规定,是可以允许本地获取到跨域脚本的错误信息,但有两个条件:一是跨域脚本的服务器必须通过 Access-Contr ...
- script标签的同步和异步
1).把<script>标签放在<head>中意味着必须等到全部的js代码都下载解析和执行完成以后,才开始展现页面内容,为避免这个问题一般把js代码全部放在<body&g ...
- Script标签解析
HTML4.01为Script定义了以下属性 async:表示异步下载脚本.只对外部脚本有效 defer:脚本可以延迟到文档完全被解析和显示之后再执行.只对外部脚本有效,IE7及更早的版本对齐也支持该 ...
最新文章
- GraphPad Prism 9.3 MacOS 2021科研绘图统计 支持Monterey 安装使用教程
- Spring MVC的表单控制器——SimpleFormController .
- 程序员怎么样保证自己的程序没有BUG
- 并发测试工具_性能测试工具基本工作原理及基本操作流程
- js html转为实体,字符串js编码转换成实体html编码的方法(防范XSS攻击)
- 请问学习前端最有效的办法是什么?
- (转)C# 控制蜂鸣器发声
- python做excel自动化-用python进行办公自动化都需要学习什么知识呢?
- FragmentActivity+FragmentTabHost+Fragement替代TabActibvity+TabHost+Activity
- ehcache 在web项目中使用
- 配电室智能监控系统设计及实现分析-Susie 周
- java实现控制台表格
- 小米发布会的米8探索者——很吓人的技术分析
- 费马小定理、欧拉定理总结
- amoeba mysql_Mysql 基于 Amoeba 的 读写分离
- springboot+教学工作量管理系统 毕业设计-附源码221541
- 问题 J: Frosting on the Cake
- SDP(Session Description Protocol)模型介绍(RFC3264)
- python控制台打印文字logo
- Linux nohup的作用
热门文章
- 线程同步之 生产者消费者模型详解
- String的内存分配与拼接操作,华为架构师深入讲解Java开发
- 字节跳动高工面试:mysql查询重复数据sql
- u盘插入后计算机内没有选项,U盘插到电脑,无法读取,属性里面空间全是0是怎么回事?...
- kafka创建topic_ELK-基础系列(六)-ELK加入消息队列-Kafka部署
- 高德地图怎么搜索marker_百度、高德、腾讯地图坐标认证怎么弄,3分钟轻松自助认证...
- Web Components 入门
- JavaScript内存那点事
- san mysql,高性能MySQL:SAN和NAS
- java 查找引用_java – Eclipse查找方法的引用