EXT的问题,有段代码不是很明白

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:44:43
EXT的onready方法有这么一段代码
if(Ext.isIE){
docReadyProcId = setInterval(function(){
try{
Ext.isReady || (document.documentElement.doScroll('left'));
}catch(e){
return;
}
fireDocReady(); }, 5);

document.onreadystatechange = function(){
if(document.readyState == 'complete'){
document.onreadystatechange = null;
fireDocReady();
}
};
}

用到了setinterval执行fireDocReady,后面readyState==complete时又执行了一次fireDocReady。EXT的这种方法我在使用的时候遇到了一个onready执行几次的问题....
我把他的这段代码改成
if(Ext.isIE){
docReadyProcId = setInterval(function(){
try{
Ext.isReady || (document.documentElement.doScroll('left'));
}catch(e){

第一段代码是2个事件 一个是你注册的定时任务 每隔5毫秒 判断是不是IE浏览器 如果是 触发滚动条事件
然后执行你的fireDocReady方法
第二段是 捕获onreadystatechange 事件 当XX改变时就会触发此事件,然后就执行了你里面的fireDocReady方法。
这2段代码是 独立的 没有必要联系
你后来改过的去掉了 第二个事件 当然就只执行一次罗。