@Shimpanze

JavaScript: почему цикл вешает страницу?

Здравствуйте!

С помощью цикла, жду когда появится элемент на странице, чтобы сразу обработать его. Почему цикл? — Чтобы обработать элемент мгновенно, сразу же, после его появления.

(function() {
  while (true) {
    if (document.getElementById('el') != null) {
      var el = document.getElementById('el');
      // действие

      break;
    }
    else {
      continue;
    }
  }
})();


Как только загрузка страницы доходит до этого скрипта, страница вешается мгновенно.

Как разрешить выполнение скрипта, без блокировки отрисовки страницы? Чтобы он работал себе и работал.

Спасибо!
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
1. Как без вашего ведома, что-то может на странице появиться?
2. Для такого отслеживания есть MutationObserver
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@artem78
Вместо этого ужаса лучше повесьте событие на загрузку страницы:
1) Чистый JS: document.addEventListener("DOMContentLoaded", so...
2) С jQuery: $(document).ready(somefunction);
Ответ написан
Комментировать
vicodin
@vicodin
Имею некоторый опыт
потому что у вас бесконечный цикл while(true) {}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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