1

我有一个与此类似的 D3.js 图表。当用户深入到图表中时,我利用引导工具提示来显示节点名称。我目前正在通过反复调用工具提示显示方法来跟踪节点,这会导致工具提示在新位置重新呈现。

setInterval(function(){
        $(node).tooltip('show');
    }, 100) 

我担心这样调用这个函数会导致性能问题。任何人都可以建议一种更好的方法来完成此任务,或者在以这种方式使用 setInterval 函数时给我一些关于性能问题的见解吗?

4

1 回答 1

0

根据您的描述,听起来您正在尝试做的事情最好通过监听状态而不是时间的离散变化来完成。我没有使用过 D3.js,但即使是像监听<circle>元素点击这样简单的事情也会更有效率。

JS

$('svg').on('click', 'circle', function () {
  $(node).tooltip('show')
})

看起来D3.js 有它自己的事件框架,但我不确定它是否支持委托。更熟悉的人可能会为此提供更好的建议。

最后,根据您一次显示的节点数量,在所有节点上调用 tooltip show本身可能会产生性能影响。通过存储引用来跟踪每次打开和关闭的文件可能会更有效。同样, D3.js中可能已经有一些东西可以处理这个问题,但这不是我所知道的。

于 2013-04-11T02:52:47.163 回答