0%

async 和defer

script元素包含async属性和defer属性:

async:可选,表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载,只对外部脚本文件有效,标记过async的脚本并不保证能按照它们出现的次序执行

defer:可选,表示脚本可以延迟到文档完全被解析和渲染后再执行,相当于告诉浏览器立即下载,延迟执行,且按照顺序执行

只对外部脚本有效,在IE7及更早版本中,对行内脚本也可以指定这个属性

如果把script标签放在head标签里,意味着必须把所有JavaScript代码都下载,加息和解释完成后,才能渲染压面页面在浏览器解析到body的其实标签时开始渲染。因此现代Web通常把js引用放在body元素中页面内容后面这样页面就会在处理js代码之前完全渲染页面