Javascript d3.js或浏览器在切换选项卡时将不透明度设置为0

Javascript d3.js或浏览器在切换选项卡时将不透明度设置为0,javascript,d3.js,Javascript,D3.js,我有一个使用d3.js创建的动态条形图。我所说的动态是指酒吧的高度和数量都在不断变化。我遇到的问题是,当我切换到浏览器中的另一个选项卡,然后再切换回浏览器时,偶尔一个或多个栏的“样式”属性设置为“不透明度:0” 我附上了一张显示问题的图片。此外,如果我非常快地单击“更新”,我会看到相同的效果 是什么导致了这种行为 编辑:应添加一段相关代码: bars.exit().transition().style({opacity: 0}).remove(); 我在Scientific Linu

我有一个使用d3.js创建的动态条形图。我所说的动态是指酒吧的高度和数量都在不断变化。我遇到的问题是,当我切换到浏览器中的另一个选项卡,然后再切换回浏览器时,偶尔一个或多个栏的“样式”属性设置为“不透明度:0”

我附上了一张显示问题的图片。此外,如果我非常快地单击“更新”,我会看到相同的效果

是什么导致了这种行为

编辑:应添加一段相关代码:

    bars.exit().transition().style({opacity: 0}).remove();

我在Scientific Linux 6.4上使用的是Firefox 17.0.10。

听起来这好像是由某种竞争条件/中断的转换引起的。如果你移除转换,它能正常工作吗?@Larskothoff,是的。虽然退出的条看起来不是很好,因为它们阻挡了进入的条的视图。看起来根本原因是几个干扰的过渡开始了。唯一真正的解决方案是使用新的3.3API,它允许您中断正在运行的转换——请参阅