时间:2021-05-28
如果只需要对DOM进行操作,那么这时就没必要等到页面全部加载了。我们需要更快的方法。
Firefox有DOMContentLoaded事件可以轻松解决,可惜的就是IE没有。
MSDN关于JSCRIPT的一个方法有段不起眼的话,当页面DOM未加载完成时,调用doScroll方法时,会产生异常。那么我们反过来用,如果不异常,那么就是页面DOM加载完毕了!
复制代码 代码如下:
functionIEContentLoaded(w,fn){
vard=w.document,done=false,
//onlyfireonce
init=function(){
if(!done){
done=true;
fn();
}
};
//pollingfornoerrors
(function(){
try{
//throwserrorsuntilafterondocumentready
d.documentElement.doScroll('left');
}catch(e){
setTimeout(arguments.callee,50);
return;
}
//noerrors,fire
init();
})();
//tryingtoalwaysfirebeforeonload
d.onreadystatechange=function(){
if(d.readyState=='complete'){
d.onreadystatechange=null;
init();
}
};
}
这个函数是DiegoPerini在07年就发布了这个方法,
而且获得了广泛认同,以至于现在许多开源框架都是借鉴这种方法,譬如JQuery中的ready。
如果以后需要用到IE的DomReady,就是他了。
用法:
IEContentLoaded(document.getElementById("test"),test);
functiontest(){}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
ready,是在DOM加载完成就触发。Jquery中复制代码代码如下:$(document).ready(function(){});//或者$().ready
jQuery$(document).ready()执行顺序:当页面DOM元素全部加载完毕后就执行.ready()。$(document).ready()是DOM
本文实例讲述了javascript性能优化之DOM交互操作技巧。分享给大家供大家参考,具体如下:在javascript各个方面,DOM毫无疑问是最慢的一部分。D
1.$(document).ready()$(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典
1.$(document).ready()$(document).ready()是jQuery中响应JavaScript内置的onload事件并执行任务的一种典