今天查看百度空间源代码,发现多了个util.js文件,打开看看。里面里面定义了addDOMLoadEvent。这是干什么用的?

仔细查看代码,发现在Mozilla添加了DOMContentLoaded事件,这个在以前一直没有用过。                    if (document.addEventListener)
                        document.addEventListener("DOMContentLoaded", init, false);

好像就是为了兼容实现DOMContentLoaded事件。

网上找了点有关DOMContentLoaded的资料拿来看看。

DOMContentLoaded是firefox下特有的Event, 当所有DOM解析完以后会触发这个事件。
    与DOM中的onLoad事件与其相近。但onload要等到所有页面元素加载完成才会触发, 包括页面上的图片等等。
    如果页面的图片很多的话, 从用户访问到onload触发可能需要较长的时间, 而在Ajax运用中, 常常需要在onload中加入许多初始化的动作, 如果由于网络问题引起的图片加载过慢( 见: Ajax优化(2) -- lazierLoad img && js), 则必然影响用户的体验。
    在这种情况下firefox的DOMContentLoaded事件, 恰恰是我们需要的。

目前,跨平台的DOMContentLoaded的解决方案有很多, 比如jQuery, Prototype...等等, 其实现原理大同小异.

在项目中, 我使用了Prototype工具, 以往调用初始化的方法是:

Event.observe(window, "load", init);

现在有了DOMContentLoaded, 可以替换成如下的方法:

document.observe('contentloaded', init);

最新的prototype中自定义事件已经重新命名, 使用"dom:loaded" 代替了 “contentloaded”.

document.observe('dom:loaded', init);

最新文章

  1. 利用 filter 机制 给 静态资源 url 加上时间戳,来防止js和css文件的缓存,利于开发调试
  2. 解读HTML 5新语法 提高语义价值
  3. Android开发的技术层次
  4. Connect mysql on Linux from Windows
  5. Python 日期格式化 及 schwartzian排序
  6. Android开发(20)--RadioGroup的使用
  7. HDU 2064 汉诺塔III
  8. 团队作业8——第二次项目冲刺(Beta阶段) 5.19
  9. 使用SpringSecurity保护你的Eureka.
  10. 2、jQuery的Ajax简单示例
  11. pthread_exit在main线程中的用处
  12. 1.搭建Angular2项目
  13. Linux下的Mysql安装 & 配置
  14. twisted的tcp.py分析
  15. Android Dialog 创建上下文菜单
  16. Rabbitmq的五种模式和案例
  17. log4net 按照日期备份日志
  18. 使用GitHub做个人博客
  19. HTML5样式、链接和表格
  20. 记一次EBS正式环境补丁安装的过程

热门文章

  1. 如何让音频跟视频在ios跟android上自动播放
  2. AndroidStudio项目CMakeLists解析
  3. POJ 2406 KMP next数组的应用
  4. C#使用SqlTransaction事务回滚与SqlBulkCopy批量插入数据
  5. 应用MVP模式对遗留代码进行重构
  6. 读书笔记6-浪潮之巅(part1)
  7. DataTable的Select()方法
  8. 03--实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
  9. Pyhhon中一些常见的字符串操作.
  10. spring helloword