javascript defer属性

来源:互联网 发布:手持身份证获取软件 编辑:程序博客网 时间:2024/04/29 08:06

编写脚本的时候加入defer属性,那么浏览器在下载脚本的时候就不必立即对其进行处理,而是继续对页面进行下载和解析,这样会提高下载的性能。

defer属性默认是为false的,那么在这里

<script language="javascript" defer>

显式声明defer属性后等同于

<script language="javascript" defer=true>


声明了defer属性之后,需要判断是否有别的变量引用了defer脚本块中的变量,否则的话会导致脚本错误的产生。

注意两点:

1、不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。

2、而且,不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。

加上 defer 等于在页面完全在入后再执行,相当于 window.onload ,但应用上比 window.onload 更灵活!

<button id="myButton" onclick="alert('ok')">test</button>
<script>
myButton.click();
</script>


<script defer>
myButton.click();
</script>
<button id="myButton" onclick="alert('ok')">test</button>


<script>
myButton.click();
</script>
<button id="myButton" onclick="alert('ok')">test</button>

========================================顺序======================================

例一(在IE中执行)

<script defer>  
alert(11);  
</script>  
<script>  
alert(22);  
</script>  
<script>  
alert(33);  
</script>  

例二(在IE中执行),把脚本加到body中

<body>

<script defer>  
alert(11);  
</script>  
<script>  
alert(22);  
</script>  
<script>  
alert(33);  
</script>  

</body>

以上两个例子执行结果不同

 

原创粉丝点击