Выполнение JS после загрузки всех ресурсов, есть ли событие?

Я заметил, что обычный alert("Text"); может успеть выполняться до отрисовки фона сайта, тем самым поставив на паузу саму отрисовку. И ни помещение скрипта перед </body>, ни window.onload, ни $(document).ready(function(){}), ни комбинации этих решений не отменят такого поведения. Так как же заставить скрипт выполняться после всего выполнения html и css на сайте (конкретно, после отрисовки всего экрана)? Есть вариант с таймером на секунду и не-вариант с перечеслением всего, что должно догрузиться до начала скрипта (ибо этого чего абстрактно в вакууме может быть много), но должно же быть более лаконичное решение приказать JS ожидать отрисовки фона/загрузки тяжёлого ресурса/выполнения других скриптов.
  • Вопрос задан
  • 3072 просмотра
Решения вопроса 2
Ivanq
@Ivanq
Знаю php, js, html, css
onload и ready() - как раз то, что вам нужно. А то, что alert вызывается до отрисовки - это баг Chrome, во всех остальных браузерах нормально, и проявляться баг будет только с alert.
Ответ написан
Stalker_RED
@Stalker_RED
DOMContentLoaded – браузер полностью загрузил HTML и построил DOM-дерево.
load – браузер загрузил все ресурсы.

jQuery.ready() - это тот же DOMContentLoaded, в jQuery обертке.

Так что, если вам действительно хочется дождаться всех ресурсов - ваш выбор:
$(window).on('load', function() {...})

И вообще, стоит задуматься, нужен ли вам блокирующий alert()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Ваш ответ на вопрос

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

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