使用 JavaScript 可以实现代码的延时执行,也就是说当一个函数被调用时不立即执行某些代码,而是等一段指定的时间后再执行,这就叫做计时事件。
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
看这段代码:
- <body>
- <script src="deffer.js">
- </script>
- content
- </body>
deffer.js 的内容为:
- alert(1)
这样在 alert 窗口没有被关闭之前,页面都会是一片空白。因为 alert 窗口阻止了页面的继续渲染。
为了避免此类问题,html 规范里定义了 deffer 和 async 属性,这两个属性的具体定义这里不讨论,反正他们都是用来告诉浏览器,一定要在页面渲染完成以后再执行本脚本的内容,这样脚本执行的时候页面已经渲染完毕了。
- <body>
- <script deffer async src="deffer.js">
- </script>
- content
- </body>
注意,对于多个加了 deffer 或者 async 的脚本,他们的执行顺序和他们在页面上出现的顺序无关。即使 html 规范定义了 deffer 脚本应该按照顺序来执行,但是浏览器事实上并没有全部遵守这个约定。
来源: