zoukankan      html  css  js  c++  java
  • 关于对defer的理解.

    代码
    1. <script defer>  
    2. function init(){   
    3. document.getElementById("div").innerHTML="OK";   
    4. }   
    5. init();   
    6. </script>  
    7. <div id="div">如果你能看到这一句,那就是说没有达到我所要的效果   
    8. <img src="http://icon.ajiang.net/icon_0.gif" />  
    9. </div> 


     

    在IE6和FIREFOX2下完全不一样

    IE6中最后执行结果是OK,而firefox中是“如果你能看到这一句,那就是说没有达到我所要的效果”

    我觉得defer这个东西 有推迟执行的意思,IE6里面先解析完所有html代码再执行defer中的脚本

    firefox中 先执行脚本后解析html

    不知道这样的理解是否有误?

    defer的含义并不是这样的。

    在w3c标准中defer的本意只是表示这段脚本不会输出文档内容,所以可以继续解析和呈现。至于执行顺序,完全语焉不详。而且这个属性只是一个hint,没有说必须如此,所以许多浏览器根本不睬这个属性。

    但是在defer属性的创造者ms那里,是有execute顺序的,关于defer的稀奇古怪的行为请看:http://www.websiteoptimization.com/speed/tweak/defer/


    正在制定的html5有极大可能会完善script标签的定义。

    会有两个属性,async和defer。

    其中defer将明确为在整个page的parsing结束之后执行(执行时机差不多就是DOMContentLoad或者IE htc的ondocumentready)。并且会严格按照所有defer的script的顺序执行。


  • 相关阅读:
    IIS代理
    NODEJS
    js图表插件
    注册nodejs程序为windows服务
    中断子系统7_中断出口处理
    Leetcode: Sort List
    jquery 鼠标经过放大图片
    在Tomcat上运行ADF Essentials应用
    简谈HTML5与APP技术应用
    Boost的Serialization和SmartPoint搭配使用
  • 原文地址:https://www.cnblogs.com/goody9807/p/806086.html
Copyright © 2011-2022 走看看