Добавьте debounce поверх validateConnection в JointJs

Я борюсь с графом, состоящим из узлов и ссылок в 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 }

person pedro.zena    schedule 29.12.2015    source источник


Ответы (1)


Я понял, что удаляя свойство snapLink, я избегаю подпрыгивания.

person pedro.zena    schedule 30.12.2015