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的顺序执行。


  • 相关阅读:
    hdu 1269 迷宫城堡(trajan判环)
    codeforces 591 E. Three States(bfs+思维)
    PowerDesigner 教程
    SQL中inner join、outer join和cross join的区别
    SQL 报表 --简易进销系统
    SQL PROMPT5.3.4.1的一些设置选项
    SQL锁机制和事务隔离级别
    洛谷P1901 发射站
    洛谷P1823 [COI2007] Patrik 音乐会的等待
    洛谷P2947 [USACO09MAR]向右看齐Look Up
  • 原文地址:https://www.cnblogs.com/goody9807/p/806086.html
Copyright © 2011-2022 走看看