Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE6上使用offsetTop和offsetLeft查找顶部和左侧的最佳性能Javascript_Javascript - Fatal编程技术网

IE6上使用offsetTop和offsetLeft查找顶部和左侧的最佳性能Javascript

IE6上使用offsetTop和offsetLeft查找顶部和左侧的最佳性能Javascript,javascript,Javascript,我想获得屏幕上div的顶部和左侧值 我一直在使用代码来计算顶部和左侧的值 var total1 = 0; var total2 = 0; while(element){ total1+=element.offsetTop; total2+=element.offsetLeft; try{ element=element.offsetParent; }catch(E){ break; } } 对于同一个DOM树,这段代码在IE8中给出了30毫秒的性能读数 在IE6中为80到200秒。 我希望在I

我想获得屏幕上div的顶部和左侧值

我一直在使用代码来计算顶部和左侧的值

var total1 = 0;
var total2 = 0;
while(element){
total1+=element.offsetTop;
total2+=element.offsetLeft;
try{
element=element.offsetParent;
}catch(E){
break;
}
}
对于同一个DOM树,这段代码在IE8中给出了30毫秒的性能读数 在IE6中为80到200秒。 我希望在IE6中获得相当大的性能改进

我对所有的想法都持开放态度

顺便说一下,我也试过了

    var total1 = 0;
    var total2 = 0;
do{
  total1+=element.offsetTop;
    total2+=element.offsetLeft;
}while(element=element.offsetParent); 
在读了一两篇博文之后。表演是相似的

我发现大部分时间都花在获取属性值上,而不是解析DOM树上,这在我的日志中并不常见。我可能错了

另外,我在这里输入的代码正在运行……可能会出错

我在看性能增益。地板是开放的,可以尝试任何东西。唯一的限制是javascript、jquery、prototype等都不是选项


提前谢谢!!:

我严重怀疑您是否能够想出比jQuery的偏移量计算更快的方法。IE6的速度慢得令人痛苦,只有这么多可以改进它


考虑独立阅读并包含/移植它。

我建议您在上问这个问题。此外,您可能会在那里张贴您发现这是一个性能问题的原因。如果重复此计算,可能有一种方法可以避免重复计算。

即使您不想使用框架,也可能需要查看JQuery和Prototype的源代码,看看它们是如何做到的。他们花了大量的时间和研究来优化他们的布局功能。因为这是一个正在改进的项目的现有代码YUI@pekka我打算看看他们的代码。。。。“刚刚挂断了东西……任何指导对我都有用。”斯莱克是jQuery的铁杆支持者,但这只是我的运气。我想要一个纯粹的JS解决方案,它只会加速IE6。IE 8是最糟糕的部分,我不能添加这么多代码。解决方案必须简单快速。现在不可能对代码进行大的修改。其思想是在diff元素上显示忙碌的指示器。