jQuery CSS Hooks很慢。可以禁用或修复?

时间:2014-03-06 10:08:55

标签: javascript jquery css performance

我正在使用 jQuery 1.10.2 在JavaScript中构建一个小部件,并且我使用了具有两个div的旧技巧,如果外部div较小并且部分隐藏了内部div。所以我使用jQuery .css()来改变内部div的左边和宽度,允许实现这个内部div的包含的平移和缩放。即使在这些内部div中有一个复杂的DOM,它也能很好地工作。

问题在于 Firefox 26和27很慢。我对它进行了分析,我看到对“ jQuery.cssHooks [name] .get()”的调用痛苦缓慢(在Chrome 33.0.1750.146中,这些调用很快),所以伤害性能。它一直可用,但Chrome和Firefox之间的差异和感觉是非常明显和不可接受的。

当我使用.css()来改变带有像素的左边属性时,我发现缓慢的cssHooks会发生。

var left = String(- (this.view_cursor - this.options.start) * this.PPY + offset) + 'px';
var width = String(this.PPY * interval) + 'px';

this.container.css({
  left: left,   // This line launchs the painful slow cssHooks calls
  width: width,
});

我是否有任何想法或建议可以避免这些慢速呼叫,或加速它? 我没有找到任何有类似问题或类似问题的人的信息。

编辑:您可以在此处测试:http://www.digibis.com/elgreco_digimus/es/musobjects/timeline.html?busq_concept=53

1 个答案:

答案 0 :(得分:0)

好的,所以看起来Firefox在Linux中渲染速度较慢,并且有一些驱动程序...... 我使用JS代码手动测量时间,我发现当Chrome在相同的代码中重新绘制所有内容时需要4毫秒时,Firefox需要7毫秒...