锁定老帖子 主题:关于对defer的理解.
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-02
<script defer> function init(){ document.getElementById("div").innerHTML="OK"; } init(); </script> <div id="div">如果你能看到这一句,那就是说没有达到我所要的效果 <img src="http://icon.ajiang.net/icon_0.gif" /> </div> 在IE6和FIREFOX2下完全不一样 |
|
返回顶楼 | |
发表时间:2007-07-02
defer的含义并不是这样的。
在w3c标准中defer的本意只是表示这段脚本不会输出文档内容,所以可以继续解析和呈现。至于执行顺序,完全语焉不详。而且这个属性只是一个hint,没有说必须如此,所以许多浏览器根本不睬这个属性。 但是在defer属性的创造者ms那里,是有execute顺序的,关于defer的稀奇古怪的行为请看:http://www.websiteoptimization.com/speed/tweak/defer/ 显然defer是个讨厌的东西,需要慎用。 |
|
返回顶楼 | |
发表时间:2007-07-02
Lucas Lee 写道 查了一下MSDN的DHTML Reference不就知道了?
这是一个符合w3c标准的属性,所以解释是通用的。 http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/defer.asp defer,我的理解是,等下载完所有的页面后再执行。 如前所述,千万不要以为msdn的描述是可靠的,通用的。实际上msdn经常会有自己打自己耳光的事情。 |
|
返回顶楼 | |
发表时间:2007-07-03
defer只是告诉浏览器你的这段脚本不会向文档输出内容,有的浏览器可以进行优化,还是不要用这个来控制执行顺序的好。
|
|
返回顶楼 | |
发表时间:2007-07-03
正在制定的html5有极大可能会完善script标签的定义。
会有两个属性,async和defer。 其中defer将明确为在整个page的parsing结束之后执行(执行时机差不多就是DOMContentLoad或者IE htc的ondocumentready)。并且会严格按照所有defer的script的顺序执行。 |
|
返回顶楼 | |