Пока сайт загружается, загружаются картинки и все прочее, хочу выполнить JS. Поскольку сайт тяжелый, хотел вынести текст о том что сайт загружается. Но это надо сделать до загрузки страницы. После вывода текста DOMContentLoaded - отличное решение, только можно ли вывести еще и проценты загрузки всего контента?
Да, можно. Первым делом навешиваете обработчики onload на картинки. При загрузке очередной картинки подсчитываете какой процент картинок от общего уже загрузили и плавно обновляете прогрессбар. Если на странице есть ещё и видео, добавляете его в процесс, описанный выше.
Но нужно понимать, что все уже устали от прелоадеров и контент нужно показывать максимально быстро.
Пашенька, Проблема что картинок до кучи и количество их меняется. Я думал можно как-то получить общий размер документа вместе со стилями, картинками, скриптами и получить размер (в байтах например) полученных данных
uuuu, боюсь, что так не выйдет, чтобы узнать размер картинки ее нужно начать загружать и пока всё это соберётся в кучу, пройдёт некоторое время и опять же нужно знать «их количество», назовём это так. Можно, конечно, на это время включать фейковый прелоадер, но опять же, спасибо вам за ожидание, никто не скажет.
uuuu, при DOMContentLoaded доступен уже весь DOMContent, очевидно. Т.е. все узлы картинок и прочего имеются в документе. Осталось только посчитать.
Другое дело, что раз доступен DOMContent - то пора его показывать, а не левый лоадер.
А вот если запускать лоадер до DOMContentLoaded, то тогда действительно не ясно сколько там будет картинок, такая вот дилемма.
Если всё это генерируется на сервере - сервер может подсчитать и заранее в скрипт подставить.
В целом же - выше правильно говорят: люям нужен не лоадер, а хоть какой-то контент сразу.
Ничего не имею против, но загрузка в процентах, как по мне баловство и лишняя нагрузка.
Если сайт на самом деле большой и долго грузиться(что плохо), сделайте обычный прелоадер.