@Kim_Soal

Js — насколько наказуемо использовать ручные отслеживалки загрузки?

По определенным причинам, непонятно когда именно загрузится определенный кусок dom-дерева, а хочется сразу на это реагировать, не дожидаясь загрузки остального.

Конкретно в моем случае, я пытался отслеживать вставку данных после ajax запроса в определенном сайте, в рамках работы расширения для хрома, но вопрос хотелось бы обобщить да и вообще понять кто как делает.

почему нельзя/плохо использовать вот такую конструкцию и/или что лучше её.

var listener = setInterval( functuin(){
    if( document.getElementById('#bla') != null ) {
        clearInterval( listener );
        doSomeCall();
    }
}, 50 )
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 2
dollar
@dollar
Делай добро и бросай его в воду.
Сам так делал. Вполне нормально.
Если расширение публичное, то можно в настройках сделать галочку "ускорять загрузку". А можно и не делать.

Кстати, можно пойти по пути прокси - и перехватывать сами ajax-запросы и фильтровать уже их.

Есть webRequest
Ответ написан
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
почему нельзя/плохо использовать вот такую конструкцию и/или что лучше её.

По той причине, что вы каждые 50мс обращаетесь к DOM, а это ресурсозатратно. Если расширение пишите только для себя, то пофиг. Нужно выбирать лучшее из двух зол. Если у вас нет другого способа, то нужно использовать какой есть, только немного его обдумать (например увеличить интервал таймера).
Но раз у вас расширение (а значит кроссбраузерность не нужна), то я думаю, вам лучше подойдет вот это MutationObserver
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы