Я участвую в проекте, который должен использовать API перетаскивания с большим количеством зон Drop и множеством узлов DOM, поэтому я пытаюсь как можно больше оптимизировать систему перетаскивания. Я обнаружил, что на вкладке Chrome Dev Tools Performance при перетаскивании наиболее тяжелой операции попадают в тестирование, я могу понять, что ему необходимо тестирование удара, чтобы попытаться проверить, можно ли отбросить элемент перетаскивания на элементе ниже. Дело в том, что очевидно, что их удалить невозможно удалить, необходимо получить тестирование, но задача Foreach выполняет тестирование HIT дважды. Это не имеет смысла для меня. Я хочу понять, можно ли каким -то образом удалить это тестирование клонированного удара, потому что это может быть отличной разницей в производительности. Взят отсюда
https://www.w3schools.com/html/html5_draganddrop.asp
#div1 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
}
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
Drag the W3Schools image into the rectangle:
< /code>
Результат производительности здесь, если я увеличиваю одну задачу:
Можно видеть, что тест на попадания дублируется, теперь я отправлю один и тот же экранинг, но в своем проекте, так что Вы можете видеть, что это может быть очень большим проблемой производительности в более тяжелых примерах.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... it-testing