在JointJs中的validateConnection上添加debounce

时间:2015-12-29 17:17:37

标签: javascript underscore.js jointjs debouncing

我正忙于使用JointJS中的节点和链接组成的图表

我想在一些规则的基础上阻止在节点之间创建特定的链接(例如,避免循环)。

为此,我在本文的validateConnection属性中实现了一些检查。

问题是这些检查可能需要一些时间才能执行,通常比执行validateConnection功能的频率更长(即每次鼠标改变位置时)。

所以我考虑等待新的检查,直到前一个检查完成。不幸的是,通过这种方式,解决方案受到死锁问题的严重影响。

所以我的最后一个想法是去除检查功能。但我仍然不是100%满意。实际上,我需要完全评估检查函数,并且在检查结束时设置validateConnection属性。

在那里你有代码:

validateConnection: _.debounce(function(cellViewS, magnetS, cellViewT, magnetT, end, linkView) {
    if(checkTopologicalRules())
        return true;
    else
        return false;
},100),
snapLinks: { radius: 35 }

1 个答案:

答案 0 :(得分:1)

我意识到删除snapLink属性我避免了弹跳行为。