DOMContentLoaded实现】的更多相关文章

一.扯淡部分 回想当年,在摆脱写页面时js全靠从各种DEMO中copy出来然后东拼西凑的幽暗岁月之后,毅然决然地打算放弃这种处处“拿来主义”的不正之风,然后开启通往高大上的“前端攻城狮”的飞升之旅.想想都有些小激动呢~然而人生不如意者十之八九,刚踏上征程就经常会被各种Error虐到体无完肤,有时候甚至会被在现在看来很低级的bug折磨得生不如死.但没有一种成长是不需要付出代价的,也就是那段刚跳入泥潭的日子开启了让自己成为一名真正的JSer的大门,也使自己在奔向高大上的路上让“见招拆招.兵来将挡”成…
1.当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了. 2.当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash. 我们需要给一些元素的事件绑定处理函数.但问题是,如果那个元素还没有加载到页面上,但是绑定事件已经执行完了,是没有效果的. 这两个事件大致就是用来避免这样一种情况,将绑定的函数放在这两个事件的回调中,保证能在页面的某些元素加载完毕之后再绑定事件的函数. DOM文档加载的步骤为 解析HTML…
http://blog.allenm.me/2010/02/window-onload-和-domcontentloaded/ 其中使用IE不支持DOMContentLoaded,那么判断IE是否加载完DOM的一种方法:判断element的doScroll如果成功则说明DOM载入完成. http://www.cnblogs.com/haogj/archive/2013/01/15/2861950.html 见第4种方法…
IE系列直到IE9才支持DOMContentLoaded事件,对于IE8及其之前版本,如果html内没有框架,则可以采用document.documentELement.doScroll来判断 是否构建好DOM树:如果html内有框架,则利用document的onreadystatechange事件判断当前DOM树是否构建完毕(框架html内容(只是html文件)加载之后DOM树构建完毕). 所以可以采用这种方式: /** * 实现DomContentLoaded的兼容性 * @param ca…
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script type="text/javascript" src="jque…
/* * IE9以及现代浏览器新增了一个DOM构建完毕的事件DOMContentLoaded, * 这个事件触发的时间要比load快, * 因为这个事件只涉及DOM的构建,不涉及其他资源的加载. * */ window.addEventListener( 'load', function() { var spans = document.querySelectorAll('span'); console.log( spans, 'load' ); } ); document.addEventLi…
document.addEventListener('DOMContentLoaded', function(){ alert(1) }); window.onload=function(){ alert(2) } window.addEventListener("load",function(){ alert(4) }); $(document).ready(function(){ alert(3) }); 先弹出3然后1最后2,4.2,4属于同一事件…
Html5的出现确实解决了一部分页面交互的问题,同时它的一些特性还是没能被我们掌握,今天主要聊聊Html5中的DomcontenLoaded和touchmove事件的属性和使用: DomcontenLoaded: 这个事件是从HTML中的onLoad的延伸而来的,当一个页面完成加载时,初始化脚本的方法是使用load事件,但这个类函数的缺点是仅在所有资源都完全加载后才被触发,这有时会导致比较严重的延迟,开发人员随后创建了一种自定义事件,domready,它在DOM加载之后及资源加载之前被触发.do…
稍微了解一点框架的事件绑定的都知道 window.onload 事件需要在页面所有内容(包括图片.flash.iframe等)加载完后,才执行,但往往我们更希望在 DOM 一加载完就执行脚本,而各大框架都提供了这样的方法,今天就讨论下其中的原理. 标准浏览器都提供了一个DOMContentLoaded事件来实现,我们只需要注册相应的事件就可以了,而在IE(6~8)浏览器里则需要模仿实现. IE浏览器里最早的解决方案是绑定document.onreadystatechange事件,判断readyS…
今天查看百度空间源代码,发现多了个util.js文件,打开看看.里面里面定义了addDOMLoadEvent.这是干什么用的? 仔细查看代码,发现在Mozilla添加了DOMContentLoaded事件,这个在以前一直没有用过.                    if (document.addEventListener)                        document.addEventListener("DOMContentLoaded", init, fals…
相信写js的,都知道window.onload吧,但是并不是每个人都知道DOMContentLoaded,其实即使你不知道,很有可能你也经常使用了这个东西. 一般情况下,DOMContentLoaded事件要在window.onload之前执行,当DOM树构建完成的时候就会执行 DOMContentLoaded事件,而window.onload是在页面载入完成的时候,才执行,这其中包括图片等元素.大多数时候我们只是想在 DOM树构建完成后,绑定事件到元素,我们并不需要图片元素,加上有时候加载外域…
DOMContentLoaded 事件是当页面的初始dom tree加载好了就会执行. 而不会去等待外部的css 渲染完成和 js执行完成,即下图中的DOM Tree阶段 DOMContentLoaded在外联样式加载前(dom加载完后)就触发了,外联的样式还没来得及渲染dom,这样导致DOMContentLoaded捕获的状态是外联样式渲染前的状态.…
http://ie.microsoft.com/testdrive/HTML5/DOMContentLoaded/Default.html The DOMContentLoaded event fires when parsing of the current page is complete; the load event fires when all files have finished loading from all resources, including ads and image…
window.onload事件 文档中所有图片,脚本,链接以及子框完成加载后,才会触发window.onload事件. 浏览器兼容性:All DOMContentLoaded事件 当页面中的文档树解析完成时,Document会触发DOMContentLoaded事件.此时,页面引用的样式表和图像文件,以及包含的框架页面可能还没有加载完成. 浏览器兼容性:Chrome 0.2+ , Firefox 1.0+, IE9+, Opera 9.0+, Safari 3.1+ 模拟DOMContentLo…
DOMContentLoaded介绍 DOMContentLoaded事件的触发条件是: 将会在“所有的DOM全部加载完毕并且JS加载执行后触发”. 但如果“js是通过动态加载进来的话,是不会影响到DOMContentLoaded的触发时间” 如下图所示,蓝色的线代表DOMContentLoaded开始触发,但前提是JS已经加载完毕并执行了. (仅仅是DOM 并不是onload事件整个页面全部加载完毕触发,DOMContentLoaded比onload要早触发 请区分开,onload为红线 表示…
一般我们监听文档是否加载完成是使用 window的load事件,该事件会在页面中的一切加载完毕时触发,但这个过程可能会因为要加载的外部资源过多而等待时间过长. DOMContentLoaded事件:则在形成完整DOM树之后就会触发,不理会图像.JavaScript文件.CSS文件或其他资源是否已经下载完成. DOMContentLoaded :好处就是可以在页面下载早起就可以添加事件处理程序,这样意味着用户能够尽早地与页面进行交互. 添加DOMContentLoaded事件如下: EventUt…
这个事件是从HTML中的onLoad的延伸而来的,当一个页面完成加载时,初始化脚本的方法是使用load事件,但这个类函数的缺点是仅在所有资源都完全加载后才被触发,这有时会导致比较严重的延迟,开发人员随后创建了一种自定义事件,domready,它在DOM加载之后及资源加载之前被触发. domready事件迅速被众多JavaScript库所采用,它开始在本地浏览器中以DOMContentLoaded的形式被使用;此外,它目前已在HTML5中被标准化,下面的代码显示了DOMContentLoaded是…
相信写js的.都知道window.onload吧,可是并非每一个人都知道DOMContentLoaded,事实上即使你不知道.非常有可能你也常常使用了这个东西. 普通情况下,DOMContentLoaded事件要在window.onload之前运行,当DOM树构建完毕的时候就会运行DOMContentLoaded事件,而window.onload是在页面载入完毕的时候,才运行.这当中包含图片等元素.大多数时候我们仅仅是想在DOM树构建完毕后,绑定事件到元素.我们并不须要图片元素.加上有时候载入外…
也许还有朋友不太清楚DOMContentLoaded这个事件.简单的说,这个事件就是要在大多数情况下去替代window.onload事件,因为window.onload事件必须要等待页面所有元素的资源都下载完毕时才触发.这个事件实际是上w3c推荐的标准事件,是在DOM树建成的时候触发,因此要比onload事件快很多.ff, opera高版本已经支持了该事件.而IE在IE8里依然没有想加这个事件的意思,为了实现IE与w3c的兼容,我们有必要为IE做一件“好事”. 一般是两种方法. 一种是创建空sc…
setTimeout(function(){ alert("settimeout"); },0); EventUtil.addHandler(window, "DOMContentLoaded", function(event){ alert("Content loaded."); }); EventUtil.addHandler(window, "load", function(event){ alert("Win…
onload.DOMContentLoaded与性能问题 onload事件 DomContentLoaded   1.onload事件 onload事件一般在所有的文档内容加载完成后触发,如果网页中图像.脚本较多,会等待这些文件都加载完毕,才会触发onload事件.实际上,这会影响用户体验,在文件未加载完毕,网页处于锁定状态.为了避免这一情况,W3C标准中有一个DOMContentLoaded事件,只要文档标记(即各种标签元素)载入完毕,就会触发,而不必等待图片下载完毕. jQuery使用者,你…
对前端同学而言,loade,unload,DOMContentLoaded等页面加载过程中会触发的事件肯定是都接触过,不过要是具体问各个事件的区别,我就不是那么能清晰的解答上来的了.正好刚刚在无阻塞脚本那看到了DOMContentLoaded事件,就来翻翻具体文档详细看一下各个事件吧.常言道温故而知新,让我们一起回头看一下 触发时机 先看下各个事件的触发时机(参考自MDN) DOMContentLoaded 当初始html文档完全加载并解析之后触发,无需等待样式.图片.子frame结束.作为明显…
简言 理解WEB页面的生命周期,文档加载事件及顺序对WEB开发有十分的重要意义.如果不理解,在元素未加载就提前操作元素,则得不到想要的结果.而如果页面完全加载完成后,再进行操作,则又会影响用户体验. 一般来说,大多数的操作我们都应该放在DOMContentLoaded事件中执行.采用如下形式: document.addEventListener('DOMContentLoaded', function () { alert("DOMContentLoaded"); }); 当初始的 H…
浏览器的多线程中,有的线程负责加载资源,有的线程负责执行脚本,有的线程负责渲染界面,有的线程负责轮询.监听用户事件. 这些线程,根据浏览器自身特点以及web标准等等,有的会被浏览器特意的阻塞.两个很明显的阻塞就是:脚本执行时对其他线程的阻塞和脚本加载时对其他线程的阻塞. 这两个阻塞发生在HTML页面初次解析时,它们对性能的影响较大,原因是: document对象绑定了一个事件:DOMContentLoaded.这个事件会在DOM解析完成之后触发.这个事件触发之后(而不是window.load事件…
JS高程 p14 “异步脚本一定会在页面的load事件前执行,但可能会在DOMContentLoaded事件触发之前或之后执行”   普通script标签会阻塞DOM的解析 DOMcontentLoaded事件在一开始的HTML文档加载并解析完之后触发,不用等待样式表.图像以及子框架加载完. 而load事件是一个完全加载完成的页面,包括所有的资源都下载完毕.       详细请参考 https://www.cnblogs.com/caizhenbo/p/6679478.html…
document.addEventListener('DOMContentLoaded',function(){ alert("SSDD") },false);…
概述 我在之前的博文(Performance面板看js加载)中提到过,如果利用监听DOMContentLoaded事件的方式来加载js是不能优化加载的,不能够替代jquery中的ready方法,原因是加载js的时候DOMContentLoaded事件还没有结束,自然不会发生页面渲染. 于是我去看jquery的源码,发现jquery里面用到了异步.我灵机一动,对啊,如果利用异步把监听DOMContentLoaded事件来加载的js放到任务队列进行延迟那不就行了.于是我分别用setTimeout和p…
声明:此文章为转载(点击查看原文),如有侵权24小时内删除.联系QQ:1522025433. (1)在chrome浏览器的开发过程中,我们会看到network面板中有这两个数值,分别对应网 络请求上的标志线,这两个时间数值分别代表什么? (2)我们一再强调将css放在头部,将js文件放在尾部,这样有利于优化页面的性能,为什么这种方式能够优化性能? (3)在用jquery的时候,我们一般都会将函数调用写在ready方法内,这是什么原理? 首先看一下 DOMContentLoaded顾名思义,就是d…
Load 事件触发代表页面中的 DOM,CSS,JS,图片已经全部加载完毕. DOMContentLoaded 事件触发代表初始的 HTML 被完全加载和解析,不需要等待 CSS,JS,图片加载.…
执行时间 onload必须等到页面内包括图片的所有元素加载完毕后才能执行. DOMContentLoaded是DOM结构绘制完毕后就执行,不必等到加载完毕. 编写个数不同 onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 DOMContentLoaded可以同时编写多个,并且都可以得到执行 // 不兼容老的浏览器 document.addEventListener("DOMContentLoaded", function() { // ...代码..…