我正在努力处理由 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 }