首页 > 试题广场 >

异步加载和延迟加载

[问答题]
1. 异步加载的方案: 动态插入 script 标签
2. 通过 ajax 去获取 js 代码,然后通过 eval 执行
3. script 标签上添加 defer 或者 async 属性
4. 创建并插入 iframe,让它异步执行 js
5. 延迟加载:有些 js 代码并不是页面初始化的时候就立刻需要的,而稍后的某些情况才需要的
发表于 2015-07-27 15:02:21 回复(0)
更多回答
把script标签放在head之间,意味着必须等到全部js代码都被下载,解析,执行完成之后,才开始呈现页面的内容。浏览器在遇到body标签时才开始呈现内容

1.<script>标签定义了defer属性,这个属性的用途表明脚本在执行的时候不会影响页面结构,相当于告诉浏览器立即下载,但延迟执行。
注意defer属性只使用于外部脚本文件,支持html5的实现会忽略给嵌入脚本设置的defer属性。因此把延迟脚本放在页面的底部仍是最佳的选择
<script  type = "text/javascript" defer="defer" src=".js">
2.异步脚本
        async只使用于外部脚本文件,并告诉浏览器立即下载文件,但与defer不同的是,标记为async的脚本并不保证按照指定他们的先后顺序执行。
<script  type = "text/javascript" async src=".js">
发表于 2016-08-30 17:34:44 回复(0)
1. 异步加载的方案: 动态插入 script 标签 2. 通过 ajax 去获取 js 代码,然后通过 eval 执行 3. script 标签上添加 defer 或者 async 属性 4. 创建并插入 iframe,让它异步执行 js 5. 延迟加载:有些 js 代码并不是页面初始化的时候就立刻需要的,而稍后的某些情况才需要的
发表于 2019-05-03 13:54:54 回复(0)
defer和async都是异步加载script,defer是推迟执行,async是加载完就执行
发表于 2018-07-14 07:03:13 回复(1)