Javascript ComputedStyle:getPropertyValue()在IE中的速度太慢了。有解决方法吗?

Javascript ComputedStyle:getPropertyValue()在IE中的速度太慢了。有解决方法吗?,javascript,internet-explorer-9,Javascript,Internet Explorer 9,My javascript在网页的DOM中运行,并为每个节点获取计算样式: var computedStyle = window.getComputedStyle(element); 然后,它使用该函数获得大约20个值,例如: c_style = computedStyle.getPropertyValue("height"); 这在IE中被证明是非常缓慢的(尝试了IE11和IE9) 如果我只是得到getComputedStyle样式,那么页面的时间是0.3秒(脚本还做其他事情) 如果我添

My javascript在网页的DOM中运行,并为每个节点获取计算样式:

var computedStyle =  window.getComputedStyle(element);
然后,它使用该函数获得大约20个值,例如:

c_style = computedStyle.getPropertyValue("height");
这在IE中被证明是非常缓慢的(尝试了IE11和IE9)

如果我只是得到getComputedStyle样式,那么页面的时间是0.3秒(脚本还做其他事情)

如果我添加getPropertyValue,页面的时间将增加到3整秒。然而,在Firefox中,脚本也在查找这些值几乎没有什么区别

在IE(9+)中是否有其他方法可以做到这一点?还是其他什么地方出了问题


编辑:其他人是否成功(=表现良好)从IE中获得了很多风格?

还有什么其他东西?您是否更改了页面之间的样式,以便每个
get
都触发回流?我不会对html或样式进行任何更改。我只是循环浏览,收集信息(文本、样式等),然后将信息粘贴到列表中。无论是否有“另一种方式”,这听起来像是非IE浏览器开发人员为时间权衡而做出的非常经典的记忆。“计算”样式是布局引擎的工件,它位于JavaScript引擎和DOM之外——通过在DOM节点缓存布局引擎数据来加快查找速度。在使用这种折衷方法的浏览器中,
getComputedStyle()
可能执行得更快,但会为每个DOM元素分配更多内存,垃圾收集可能会变得更复杂。IE开发者可能还没有决定投入资源以这种方式重构他们的引擎。