script的延迟执行

看这段代码:html

<body>
    <script src="deffer.js"></script>
    content
 </body>

deffer.js的内容为:浏览器

alert(1)async

 

这样在alert窗口没有被关闭以前,页面都会是一片空白。由于alert窗口阻止了页面的继续渲染。spa

 

为了不此类问题,html规范里定义了deffer和async属性,这两个属性的具体定义这里不讨论,反正他们都是用来告诉浏览器,必定要在页面渲染完成之后再执行本脚本的内容,这样脚本执行的时候页面已经渲染完毕了。code

<body>
    <script deffer async src="deffer.js"></script>
    content
 </body>

 

注意,对于多个加了deffer或者async的脚本,他们的执行顺序和他们在页面上出现的顺序无关。即便html规范定义了deffer脚本应该按照顺序来执行,可是浏览器事实上并无所有遵照这个约定。htm

相关文章
相关标签/搜索