文档章节

谈谈<script>链接属性的defer async 区别

r00txx
 r00txx
发布于 2016/06/22 15:10
字数 2
阅读 363
收藏 24
点赞 2
评论 3

有时候我们加载JS文件, 尤其是外链JS文件的时候,当文件加载过慢,或者文件加载出错的时候,有可能会阻塞整个页面的加载, 这时我们需要JS的异步加载, 有两个属性可支持异步加载

defer     async

用法为:

 <script type="text/javascript" async src="xxx.js"></script> 

<script type="text/javascript" defer src="xxx.js"></script>

 

defer 和 async 的共同点是 都是可以并行加载JS文件,不会阻塞页面的加载, 不同点是 defer的加载完成之后, JS会等待整个页面全部加载完成了再执行, 而async是加载完成之后,会马上执行JS, 所以假如对JS的执行有严格顺序的话,那么建议用 defer加载。

 

以上两个属性有一种异常情况, 假如当要加载的 JS 有如下的代码逻辑:

document.write('xxxxx'); window.location='xxxx';

那么有可能会导致页面的一片空白,要谨慎使用

© 著作权归作者所有

共有 人打赏支持
r00txx
粉丝 0
博文 18
码字总数 6439
作品 0
广州
架构师
加载中

评论(3)

os790858223
os790858223
一二一
os790858223
os790858223

引用来自“Qiujuer”的评论

还不错的。

嗯嗯
Qiujuer
Qiujuer
还不错的。
Javascript 异步加载详解

一、同步加载与异步加载的形式 1. 同步加载 我们平时最常使用的就是这种同步加载形式: <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后...

Carl_ ⋅ 2014/09/15 ⋅ 0

Javascript 异步加载详解

一、同步加载与异步加载的形式 1. 同步加载 我们平时最常使用的就是这种同步加载形式: <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后...

张悟空 ⋅ 2014/08/18 ⋅ 0

异步加载JS的4种方式(详解)

方案1:$(document).ready 点评: 1、需要引用jquery 2、兼容所有浏览器。 方案2: 点评: 1、HTML5

老朱教授 ⋅ 2017/09/03 ⋅ 0

JS的相关概念

1. CSS和JS在网页中的放置顺序是怎样的? CSS最好放入header中,即放在网页内容(html标签中包含的文字和图片等)和js脚本之前 S最好放在最后,即放在网页内容(html标签中包含的文字和图片等...

熊蛋子17 ⋅ 2017/11/28 ⋅ 0

JavaScript 异步加载

本文转载自:http://blog.csdn.net/m13666368773/article/details/7586106 一、同步加载与异步加载的形式 1. 同步加载 我们平时最常使用的就是这种同步加载形式: <script src="http://your...

learn_more ⋅ 2015/09/20 ⋅ 0

script中defer和async的区别

定义 对于defer,我们可以认为是将外链的js放在了页面底部。js的加载不会阻塞页面的渲染和资源的加载。不过defer会按照原本的js的顺序执行,所以如果前后有依赖关系的js可以放心使用。 对于a...

Juicyangxj ⋅ 2017/11/20 ⋅ 0

【JavaScript】简介

JavaScript诞生于1995年,它的主要目的是处理以前由服务器端语言负责的一些输入验证操作。 完整的JavaScript实现由下列三个不同的部分组成: 核心(ECMAScript) 文档对象模型(DOM) 浏览器...

sgosky ⋅ 2017/03/14 ⋅ 0

浏览器的渲染:过程与原理

内容说明 本文不是关于浏览器渲染的底层原理或前端优化具体细节的讲解,而是关于浏览器对页面的渲染——这一过程的描述及其背后原理的解释。这是因为前端优化是一个非常庞大且零散的知识集合...

天方夜 ⋅ 2017/10/26 ⋅ 0

[高性能javascript笔记]1-加载和执行

无论是外链还是内链,<script>标签每次出现都霸道地让页面等待脚本的解析和执行。这是页面生存周期的必要环节,因为脚本执行过程中可能会修改页面内容。 在<header>标签中加载多个javascrip...

小树coding ⋅ 2016/12/06 ⋅ 0

异步加载js详解

优化脚本文件的加载提高页面的加载速度,一直是前端工程师提高页面加载速度很重要的一条。因为涉 及到各个浏览器对解析脚本文件的不同机制,以及加载脚本会阻塞其他资源和文件的加载。当浏览...

飛飛飛jjs ⋅ 2017/06/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 29分钟前 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 34分钟前 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 昨天 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部