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

 
 

关于对defer的理解.的更多相关文章

  1. GO中DEFER的理解--DEFER执行的原理

    在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用.因此,defer通常用来释放函数内 ...

  2. go中defer的理解--defer、return、返回值之间执行顺序

    defer可以读取有名返回值 func c() (i int) { defer func() { i++ }() return 1 } 输出结果是2. 在开头的时候,我们知道defer是在return ...

  3. golang中defer的理解

    在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用.因此,defer通常用来释放函数内 ...

  4. Go-常见的面试题(一)

    文章转载地址:https://juejin.im/entry/5971bed66fb9a06bb21adf15 1.写出下面代码的输出 package main import "fmt&qu ...

  5. Go 面试题(附答案解析)

    1.写出下面代码输出内容 package main import ( "fmt" ) func main() { defer_call() } func defer_call() ...

  6. golang的多协程实践

    go语言以优异的并发特性而闻名,刚好手上有个小项目比较适合. 项目背景: 公司播控平台的数据存储包括MySQL和ElasticSearch(ES)两个部分,编辑.运营的数据首先保存在MySQL中,为了 ...

  7. 简单的 for 循环也会踩的坑

    前言 最近实现某个业务时,需要读取数据然后再异步处理:在 Go 中实现起来自然就比较简单,伪代码如下: list := []*Demo{{"a"}, {"b"} ...

  8. 从GO内存模型与调用协议理解defer closure的坑

    资料参考: 官网defer介绍: https://blog.golang.org/defer-panic-and-recover 深入解析go: 多值返回: https://tiancaiamao.g ...

  9. 理解Defer、Panic和Recover

    刚开始的时候理解如何使用Defer和Recover有一点怪异,尤其是使用了try/catch块的时候.有一种模式可以在Go中实现和try/catch语句块一样的效果.不过之前你需要先领会Defer.P ...

随机推荐

  1. C#开源框架(整理)

    http://www.cnblogs.com/chinanetwind/p/3715809.html http://www.cnblogs.com/chinanetwind/p/3715813.htm ...

  2. 11个实用经典的SQL小贴士

    学习工作之余,在没有要解决问题的压力之下,还是建议系统的看看书,对于一些认为没啥用的知识点,也建议去仔细的看看,练练手,说不定什么时候就用到了,到时也好有针对性的去查,不至于盲目的按照自己的思路,重复 ...

  3. ASP.NET MVC Razor视图引擎攻略

    --引子 看下面一段MVC 2.0的代码. <%if (Model != null){%> <p><%=Model%></p><%}%>&l ...

  4. 前端架构:Angular与requirejs集成实践

    这几天angular与requirejs.browserify的集成弄的博主头好晕,今天终于成功集成了requirejs,现写些心得体会在这里. 核心思想:angular加载时有一定的顺序,必须依次加 ...

  5. VS常用技巧

    VS2005代码编辑器的展开和折叠代码确实很方便和实用.以下是展开代码和折叠代码所用到的快捷键,很常用: Ctrl + M + O: 折叠所有方法 Ctrl + M + M: 折叠或者展开当前方法 C ...

  6. 开源的c语言人工神经网络计算库 FANN

    这年头机器学习非常的火,神经网络算是机器学习算法中的比较重要的一种.这段时间我也花了些功夫,学了点皮毛,顺便做点学习笔记. 介绍人工神经网络的基本理论的教科书很多.我正在看的是蒋宗礼教授写的<人 ...

  7. True or False

    任何对象都可以被测试真值.用于if或while条件中或作为下面的布尔操作的操作数.以下值被视为假: None False 任何数值类型的零,例如,0.0.0.0j . 任何空序列,例如,". ...

  8. Umbraco部署到IIS中权限问题(back office没有权限新建template)

    在开发项目中,发现把基于Umbraco平台开发的网站部署到服务器的IIS之后,访问该网站的back office 在back office中增加一个template时,发送错误,提示 Access t ...

  9. 再看Core Data中PSC陷入死锁的问题

    在<Core Data Programming Guide>文档的Concurrency with Core Data这一章节中提到了“Use Thread Confinement to ...

  10. UVaLive 6802 Turtle Graphics (水题,模拟)

    题意:给定一个坐标,和一行命令,按照命令走,问你有多少点会被访问超过一次. 析:很简单么,按命令模拟就好,注意有的点可能走了多次,只能记作一次. 代码如下: #pragma comment(linke ...