DOMContentLoaded事件

S32DS IDE调试技巧:如何用条件断点精准捕获汽车电子MCU的硬件状态变化 本文详细介绍了S32DS IDE中条件断点功能在汽车电子MCU开发中的应用技巧。通过精准捕获硬件状态变化,工程师可以高效调试外设寄存器异常、时序敏感型交互等复杂场景,大幅提升汽车电子系统的开发效率。文章还提供了多种实战案例和性能优化建议,帮助开发者充分利用S32DS的调试功能。 阅读详情

今天查看百度空间源代码,发现多了个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);



附:

   Andrea Giammarchi的OnContent函数提供了一个跨平台的DOMContentLoaded的解决方案My DOMContentLoaded Final Solution 

文件名称:DOMContentLoaded.js
  1. function onContent(f){
  2.     var a = onContent,
  3.      b = navigator.userAgent,
  4.      d = document,
  5.      w = window,
  6.      c = "onContent",
  7.     e = "addEventListener",
  8.      o = "opera",
  9.      r = "readyState",
  10.      s = "<scr".concat("ipt defer src='//:' on", r, "change='if(this.", r, "==\"complete\"){this.parentNode.removeChild(this);", c, ".", c, "()}'></scr", "ipt>");
  11.      a[c] = (function(o) {
  12.         return function() {
  13.              a[c] = function() {};
  14.             for (a = arguments.callee; ! a.done; a.done = 1) f(o ? o() : o)
  15.         }
  16.     })(a[c]);
  17.     if (d[e]) d[e]("DOMContentLoaded", a[c], false);
  18.     if (/WebKit|Khtml/i.test(b) || (w[o] && parseInt(w[o].version()) < 9))(function() { / loaded | complete / .test(d[r]) ? a[c]() : setTimeout(arguments.callee, 1)
  19.     })();
  20.     else if (/MSIE/i.test(b)) d.write(s);
  21. };


util.js:

addDOMLoadEvent = (function(){
        // create event function stack
        var load_events = [],
            load_timer,
            script,
            done,
            exec,
            old_onload,
            init = function () {
                done = true;
                // kill the timer
                clearInterval(load_timer);

                // execute each function in the stack in the order they were added
                while (exec = load_events.shift())
                    setTimeout(exec, 10);
                if (script) script.onreadystatechange = '';
            };

            return function (func) {
                // if the init function was already ran, just run this function now and stop
                if (done) return func();


                if (!load_events[0]) {
                    // for Mozilla/Opera9
                    if (document.addEventListener)
                        document.addEventListener("DOMContentLoaded", init, false);

                    // for Internet Explorer

                    /*@cc_on @*/
                    /*@if (@_win32)
                        document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
                        script = document.getElementById("__ie_onload");
                        script.onreadystatechange = function() {
                            if (this.readyState == "complete")
                                init(); // call the onload handler
                        };
                    /*@end @*/


                    // for Safari
                    if (/WebKit/i.test(navigator.userAgent)) { // sniff
                        load_timer = setInterval(function() {
                            if (/loaded|complete/.test(document.readyState))
                                init(); // call the onload handler
                        }, 10);
                    }

                    // for other browsers set the window.onload, but also execute the old window.onload
                    old_onload = window.onload;

                    window.onload = function() {
                        init();
                        if (old_onload) old_onload();
                    };
                }

            load_events.push(func);
        }
})();

function insertWBR(string, step){
    var textarea = document.createElement('TEXTAREA');
    textarea.innerHTML = string.replace(/</g,"&lt;").replace(/>/g,"&gt;");
    string = textarea.value;

    var step = (step || 5), reg = new RegExp("({" + step + "})", "gi");
    return string.replace(/(<[^>]+>)/gi,"$1<wbr/>").replace(/(>|^)([^<]+)(<|$)/gi, function(a,b,c,d){
        if(c.length < step) return a;
        return b + c.replace(reg, "$1<wbr/>") + d;
    });
}

电子设计(1)二极管防电源反接电路 二极管经常用来作电源防反接保护,所需器件少,电路简单。 阅读详情

相关推荐

鸿蒙【ArkTS】使用TS装饰器封装网络请求HTTP

在HarmonyOS应用开发中,通过HTTP访问网络,可以使用官方提供的@ohos.net.http模块。但是官方提供的直接使用不太好使用,需要封装下才好。这里采用TS的装饰器实现AOP效果 完成前后端接口风格的统一

weixin_60376559的博客 5611

实战解析:如何利用Hive SQL与Sqoop精准定位热门出行线路

本文详细解析了如何利用Hive SQL与Sqoop技术精准定位热门出行线路。通过线路归一化处理、窗口函数应用等Hive SQL高级技巧,结合Sqoop数据迁移实战,实现从海量订单数据中提取热门线路并高效导出至MySQL数据库,为交通出行数据分析提供完整解决方案。

weixin_33720078的博客 421

OneNET物联网平台实战:从零搭建到双向数据通信测试

本文提供了一份详细的OneNET物联网平台实战指南,从零开始讲解平台搭建与设备创建,并重点演示了如何通过MQTT协议实现设备数据上报与云端命令下发的双向数据通信测试。通过模拟设备连接与数据交互,帮助开发者快速理解物联网核心通信流程。

weixin_29306571的博客 350

DOMContentLoaded与load的区别、触发时机

一、DOMContentLoaded 与 load 事件 关于 DOMContentLoaded 和 load 事件,MDN对他们是这样描述的:DOMContentLoaded 文档地址、load 文档地址。 DOMContentLoaded 意思就是:当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架的完成加载。 load 意思就是:当一个资源及其依赖资源已完成加载时,将触发 load 事件。 区别小结 简而言之,二者

包磊磊的博客 7293

CST STUDIO SUITE 2023安装

破解工具的Crack文件夹内有一个名为「CST Studio Suite 2022」的文件夹,这也是于CST的安装目录同名的文件夹,直接把它拷贝到CST Studio Suite 2022的同级路径下即可,比如你的CST安装路径为:D:\Program Files\CST Studio Suite 2022,则将Crack目录内的「CST Studio Suite 2022」文件夹复制到 D:\Program Files\ 这个级别的路径下即可。软件百度网盘链接放在文章末尾啦!先不着急启动CST或者激活。

m0_49516223的博客 4124

数据基础设施建设任务中的技术名词解析

近日,国家数据局确定了18个数据基础设施建设任务(先行先试)承担地区,建设任务内容为:数场、数据空间、数据原件、隐私计算、数联网、区块链。这些概念都有什么样的内涵,他们的相互关系是怎样的?

五角大寨 5307

DOMContentLoaded

DOMContentLoaded简介 1、概念 MDN解析:当初始HTML文档已完全加载和解析时,将触发DOMContentLoaded事件,而不需要等待样式表,图像和子框架页面加载(事件可以用来检测HTML页面是否完全加载完毕(fully-loaded))。 2、HTML解析过程与DOMContentLoaded触发时机 1) 既无js也无css的情况下,HTML文档的解析过程: 由图可见...

安歌 2万+

从零到一:手把手教你用YonBuilder for NCC搭建NC Cloud 2021.11开发环境(含避坑指南)

本文详细指导如何使用YonBuilder for NCC搭建NC Cloud 2021.11开发环境,涵盖硬件要求、软件安装、YonBuilder配置及常见故障排除。特别提供避坑指南,帮助开发者快速上手NCC开发,确保环境配置的原子化分解和开发思维的体系化建立。

weixin_42523326的博客 345

DOMContentLoaded 事件

事件是 DOM(文档对象模型)完全加载和解析完成的事件,但不需要等待样式表、图片和子框架的完成加载。换句话说,当文档的 HTML 被完全加载和解析完成之后,就会触发事件,此时 DOM 树已经完全构建,但可能还未加载完所有的外部资源(如样式表和图片)。这个事件对于执行依赖于 DOM 的 JavaScript 代码非常有用,因为它确保了你的脚本在尝试访问 DOM 元素之前,这些元素已经存在于页面上。

weixin_51803498的博客 1621

使用AI编写测试用例——详细教程

现阶段AI还不能完全替代人工测试用例编写,但如果把AI当做一个提高效率的工具,它将会是一个很强大的辅助。

公众号|软件测试老吴 3万+

Qt C++ 实现一个完整的扫雷

mineCountLabel = new QLabel(QString("地雷: %1").arg(remainingMines, 3, 10, QChar('0')), this);mineCountLabel->setText(QString("地雷: %1").arg(remainingMines, 3, 10, QChar('0')));timeLabel->setText(QString("时间: %1").arg(gameTime, 3, 10, QChar('0')));" : "游戏失败!

寒寒豆豆软件公司的博客 107

「深入探究Web页面生命周期:DOMContentLoaded、load、beforeunload和unload事件」

页面生命周期的四个重要事件:DOMContentLoaded、load、beforeunload 和 unload,定义了页面从加载到卸载的不同阶段。这些事件可以帮助我们在合适的时机执行相关的操作,提供更好的用户体验和数据处理。DOMContentLoaded 事件在 HTML 和 DOM 树加载完成后触发,适用于执行与 DOM 相关的初始化操作。load 事件在整个页面及其外部资源加载完成后触发,适用于执行与页面渲染和交互相关的操作。

欢迎来到我的前端博客!这里汇集了关于前端开发的最新技术、实用工具和经验分享。我将为你提供详细的教程、代码示例和实战案例,帮助你掌握Web开发的核心概念和技能。不论你是初学者还是有经验的开发者,这个博客都适合你。 6897

YOLO26涨点改进| TGRS 2026 | 独家自研创新、检测头改进篇| AHATHead自适应混合注意力检测头,二次创新,强化特征表达与目标判别能力,适合遥感小目标检测、小目标检测有效涨点

🔥本文提出了一种改进YOLO26模型的AHATHead自适应混合注意力检测头,通过融合全局与局部注意力机制增强特征表达能力。该方法采用动态权重分配策略,在预测阶段自动调整关键区域与通道特征权重,有效提升小目标和密集场景的检测性能。实验表明,AHATHead在保持较高推理效率的同时,显著提高了目标定位精度与类别判别能力。文章详细介绍了模块结构、实现原理和代码集成步骤,并提供了两种改进配置方案(yolo26_AHATHead.yaml和yolo26_RFHA-YOLO-AHATHead.yaml)

Ai缝合怪、助力小伙伴高效发论文 159

DOMContentLoaded 与 load事件

文章转自: https://www.cnblogs.com/Bonnie3449/p/8419609.html 写的挺好。   一、DOMContentLoaded 与 load事件 关于load和DOMContentLoaded事件,mdn对于它们是这样描述的: DOMContentLoaded mdn文档地址:https://developer.mozilla.org/zh-CN/...

liubangbo的专栏 3920

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

了解 DOMContentLoaded 事件

当纯 HTML 被完全加载以及解析时,DOMContentLoaded 事件会被触发,而不必等待样式表,图片或者子框架完成加载。一个易混用但不同的事件是,load,这个事件仅仅应该在探测到整个页面完全加载完成时被使用。一个常见的错误就是在该使用DOMContentLoaded的地方使用了load 。DOMContentLoaded事件在浏览器完成解析HTML文档,构建DOM树之后触发,但在加载外部...

文摘资讯 1058

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

DOMContentLoaded、ready、load 事件的区别

事件 DOMContentLoaded、ready 和 load 之间的区别: 触发的时机不一样,先触发DOMContentLoaded事件,后触发load事件。 DOM文档加载的步骤为: 解析HTML结构。 加载外部脚本和样式表文件。 解析并执行脚本代码。 DOM树构建完成。//DOMContentLoa...

xiaogangblog的博客 1010

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

DOMContentLoaded与load事件

MDN参考: - DOMContentLoaded - load区别 DOMContentLoaded: DOM解析完成即触发此事件,不等待styles, images等资源的加载 load:依赖的资源也已加载完成 DOMContentLoaded绑定到document,load绑定到window document.addEventListener('DOMContentLoaded', fun

Marshall001的博客 1180

DOMContentloaded事件和load事件触发

具体来说,当浏览器完成HTML文档的解析,并将文档转换为一个完整的DOM树时,就会触发DOMContentloaded事件。与DOMContentloaded事件不同,load事件是在一个资源及其所有依赖资源(如图片、样式表、脚本文件等)都加载完成后触发的。因此,load事件通常用于确保页面上的所有内容都已经加载完毕,然后执行一些后续操作,如初始化动画效果、启动交互功能等。在HTML文档的解析过程中,如果遇到script脚本,就会停止页面的解析进行下载,当脚本都执行完毕后,才会继续解析页面。

qq_29579625的博客 792

onload和DOMContentLoaded事件

1.onload事件 ​在页面的所有资源加载完成时,window对象上会触发一个onload事件。此时页面的DOM树已经构建完成,并且完成了所有图片、样式表、脚本等资源也已经加载完成。但是存在的问题是,当资源过多过大时,onload会出现比较严重的延迟问题,严重影响用户体验。 2.DOMContentLoaded事件 对比onload事件,DOMContentLoaded事件就更加合...

wlqdbtx的博客 1290

DOMContentLoaded和onload事件的区别

DOMContentLoaded 当所有DOM解析完以后会触发这个事件。 和onload事件很相近但onload要等到所有页面元素加载完成才会触发, 包括页面上的图片等等。 如果页面的图片很多的话,从用户访问到onload触发可能需要很长的事件,而且在ajax的运行中常常需要在onload中加入许多初始化的动作, 如果由于网络问题引起的图片加载过慢( 见: Ajax优化(2) -- laz

zhanglongdream的博客 2406

DOMContentLoaded事件,当所有DOM解析完以后会触发这个事件

今天查看百度空间源代码,发现多了个util.js文件,打开看看。里面里面定义了addDOMLoadEvent。这是干什么用的? 仔细查看代码,发现在Mozilla添加了DOMContentLoaded事件,这个在以前一直没有用过。 if (document.addEventListener) document.addEventListener(“DOMContentLoaded”, init, false); 好像就是为了兼容实现DOMContentLoaded事件。

m0_37866091的博客 1109

html5之DOMContentLoaded事件

html5html5新增了一个DOMContentLoaded事件这个事件兼容IE9+DOMContentLoaded事件在DOM解析完毕后触发,通常这个事件要比onload快很多,但是也有很少的例外。备注:如果发了例外,DOMContentLoaded事件和onload事件触发的间隔时间相差不会很大,所以可以认为DOMContentLoaded比onload要快,只监听DOMContentLoad

marslover521的博客 376
上一篇: document.addEventListener理解
下一篇: html标签之帧标志
HackProgramer
博客等级 码龄12年 255粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值