码迷,mamicode.com
首页 > 其他好文 > 详细

script async 和script defer的区别

时间:2016-04-12 19:27:25      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

浏览器对js文件的操作主要有两部分:下载和执行;

js文件下载在有些浏览器中是并行的,在有些浏览器中是串行的,如:IE8、firefox3、chrome2都是串行下载的;

执行在所有浏览器中默认是阻塞的,当js在执行时不会进行html解析和其他操作,所以,页面顶部的js不宜过大,过大会导致页面长时间处于空白状态,对于外链的js文件,async和defer属性可以减少对页面加载的影响

async表示js是否异步执行,当有这个属性时则不阻塞当前页面的加载,并在js下载完后立刻执行,但是不能保证多个script标签的执行顺序

defer表示js是否延迟执行,当有这个属性时js的执行会推迟到页面解析完成之后,可以保证多个script标签的执行顺序,需要注意的是这两个属性目前对于内嵌的js是无效的而对于dom中创建的script标签在浏览器中则是异步的

如果async为true,那么脚本在下载完成后异步执行

如果async为false,defer为true,那么脚本会在页面解析完毕之后执行

如果async和defer都为false,那么脚本会在页面解析中,停止页面解析,立刻下载并且执行

注:本文来自摘抄

 

script async 和script defer的区别

标签:

原文地址:http://www.cnblogs.com/pearlsong/p/5383762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!