手机
当前位置:查字典教程网 >编程开发 >Javascript教程 ><script defer> defer 是什么意思
<script defer> defer 是什么意思
摘要:程序下载完后再进行解析和执行。文档上说defer中的代码不立即执行,页面会继续载入,那defer中的代码具体在什么时候执行呢?在全部java...

程序下载完后再进行解析和执行。

文档上说defer中的代码不立即执行,页面会继续载入,那defer中的代码具体在什么时候执行呢?在全部javascript代码载入之后?页面载入之后?onload之前还是之后?

答案是:

并不是说在网页载入时不执行,可以在网页写一个SCRIPT.然后定义它,但是在载入时它还是执行了,

后来在找其它的东东时发现,因为它不有个子, 不知它是如何用,

原来它是在你的网页已截入完成后,你想动态添加一个新的<script>时用的,如果你只是object.innerHTML = "<script" + ">"..."</script" + ">";

那么当你调用你这个新定义的东东就会出错,说还未定义,当你在上面的代码加入defer时那么你就能成功调用它,

在下面的代码中你可以试下把它去掉, defer>";,那么你就会发现问题!

<HTML>

<SCRIPT>

function insertScript(){

var sHTML="<input type=buttongo2()" + " value='Click Me'><BR>";

var sScript="<SCRIPT defer>";

sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";

sScript = sScript + "</SCRIPT" + ">";

ScriptDiv.innerHTML = sHTML + sScript;

}

</SCRIPT>

<BODY onload="insertScript();">

<DIV ID="ScriptDiv"></DIV>

</BODY>

</HTML>

//defer属性指示该段脚本不会改变文档的内容。在文档完全显示之前,js解释器不执行这段代码。

具体到这个例子,因为js不允许动态生成js代码,所以去掉defer后产生的代码会被认为是非法的。加上defer后的代码,会被解释器认为是载入页面的时候跳过去的,可以执行。

<script src="../js/script.js" defer></script>

中的defer作用是文档加载完毕了再执行脚本,这样回避免找不到对象的问题

<button id="myButton">test</button>

<script>

myButton.click();

</script>

<script>

myButton.click();

</script>

<button id="myButton">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型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。

一个常用的优化性能的方法是:当脚本不需要立即运行时,在<SCRIPT>标签中设置“defer”属性。 (立即脚本没有被包含在一个function块中,因此会在加载过程中执行。) 设置“defer”属性后,IE就不必等待该脚本装载和执行完毕。这样页面加载会更快。一般来说,这也表明立即脚本最好放在function块中,并在document或者body对象的onload 句柄中处理该函数。在有一些脚本需要依赖用户操作而执行时----例如点击按钮,或者移动鼠标到某个区域----使用该属性非常有用。但当有一些脚本需要在页面加载过程中或加载完成后执行,使用defer属性得到的好处就不太大。

【&lt;script defer&gt; defer 是什么意思】相关文章:

document 和 document.all 分别什么时候用

深入浅出理解javaScript原型链

JavaScript实现Iterator模式实例分析

javascript中一些util方法汇总

jQuery预加载图片常用方法

JavaScript实现斗地主游戏的思路

Javascript中的Prototype到底是什么

Javascript - HTML的request类

JavaScript实现身份证验证代码

可输入的下拉框

精品推荐
分类导航