Мутация завершена - PullRequest
       14

Мутация завершена

0 голосов
/ 05 июня 2018

Я включаю сторонний javascript, который, в свою очередь, добавляет дочерние элементы в DOM, и время, затрачиваемое на это, является переменным, есть ли способ узнать, когда мутация завершена, например, DOMNodeInserted завершен?

Мой код на данный момент выглядит так:

$("#searchgadget").bind("DOMNodeInserted",function(){
alert("added");}

Как и ожидалось, я получаю оповещения о каждых 500+ элементах, которые добавляются в "поисковый гаджет", однако меня интересует только когда этозаканчивается, я просто хочу сделать некоторую логику после последнего DOMNodeInserted.В любом случае, чтобы сделать это?

1 Ответ

0 голосов
/ 05 июня 2018

При условии, что код, который добавляет узлы, работает синхронно, между ними не будет никакой задержки.Вы можете установить таймаут каждый раз, когда вставляется узел.По истечении времени ожидания все мутации завершаются.

insertTimeout = null;
$("#searchgadget").on("DOMNodeInserted", function() {
    clearTimeout(insertTimeout);
    insertTimeout = setTimeout(function() {
        alert("added");
    }, 100);
});
...