defer 作用是文档加载完毕了再执行脚本, 这样回避免找不到对象的问题,下面有个不错的示例,感兴趣的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
- <script src="../cgi-bin/delscript.js" defer>
- </script>
- 中的defer作用是文档加载完毕了再执行脚本,这样回避免找不到对象的问题---有点问题
- <button id="myButton" onclick="alert('ok')">
- test
- </button>
- <script>
- myButton.click();
- </script>
- <script>
- myButton.click();
- </script>
- <button id="myButton" onclick="alert('ok')">
- test
- </button>
- <script defer>
- function document.body.onload() {
- alert(document.body.offsetHeight);
- }
- </script>
加上 defer 等于在页面完全在入后再执行,相当于 window.onload ,但应用上比 window.onload 更灵活! defer 是脚本程序强大功能中的一个 "无名英雄"。它告诉浏览器 Script 段包含了无需立即执行的代码,并且,与 SRC 属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。 -- 但是 文档加载完毕了再执行脚本 最后请注意两点: 1、不要在 defer 型的脚本程序段中调用 document.write 命令,因为 document.write 将产生直接输出效果。 2、而且,不要在 defer 型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。 一个常用的优化性能的方法是:当脚本不需要立即运行时,在
来源: