Дмитрий Беляев: у нас диалог идет как будто о разных вещах)
Я спрашиваю про то, что понимается под словами "загружен документ полностью", а Вы мне рассказываете про базовые правила загрузки внешних ресурсов браузером)
Уже не суть, я протестировал поведение через хром девелопер и посмотрел последовательность загрузки скриптов. Все происходит как Вы говорили, но с маленьким нюансом. Onload вызывается когда все теги в файле полностью прочитаны браузером. Если внизу будет лежать скрипт, который например меняет цвет фона страницы, то далее следует пересчет стилей и генерируется событие domcontentloaded, потом идет построение layout и после этого генерируется событие paint.
Дмитрий Беляев: насчет правил загрузки скриптов это понятно все. Дело в том что рекомендация засовывать скрипт перед закрывающим тегом боди подразумевает что это делается для того, чтобы скрипт был прочитан до того момента как произойдет событие onload. Если это событие возникает только после обработки всего файла, то не имеет значения где лежит скрипт - внутри боди или снаружи в самом конце. Как document.write кстати модифицирует сам html? Я читал давно про этот метод, но мне он показался бесполезным и непонятным и я его благополучно забыл)
Тогда получается что практика засовывать скрипты в конец документа не так уж и эффективна. Но это рекомендация Гугл, так что видимо придется самому тестировать для получения стопроцентной уверенности((
HamSter: проблема с w3school в том что их инфа часто устаревшая, либо вообще неправильная к сожалению. Но подача материала там хорошая, это точно. А вот если надо чтоб она была правильная, то думаю лучше будет mozilla mdn
Outoverlay: проверил по MDN - действительно на все элементы вешается.
Тогда тем более непонятно отличное поведение аттрибута на img от такового на body
ThunderCat: ну дело в том что на картинку то как раз повесить можно.
И событие сработает когда картинка загрузится. Следуя этой логике я предположил что если повесить на элемент body, то сработает оно когда парсер браузера дойдет до закрывающего тега body. Document.onLoad это помоему полный аналог аттрибута на теге body, только позволяет не захламлять html аттрибутами и инлайновым js
Все элементы страницы, а не документа. В этом и есть двусмысленность толкования. Тем более этот атрибут применяется к тегу body, и логично предположить, что как только закрывающий тег будет прочитан то сгенерируется это событие. Сейчас нет компьютера под рукой чтобы протестировать самому и узнать на практике.
Сергей Софьичев: после того как написал, тоже подумал об этом ))
Но с другой стороны это решение более универсально для создания модулей.
Один код, который работает везде. Копируй и вставляй )
Сергей Софьичев: И еще вопрос, который как раз послужил причиной этих экспериментов. При загрузке карт они отображаются сначала мутно и через некоторое мгновение становятся четкими. Есть ли способ заствить их появлятся четкими сразу? Думал сначала вынести див в 3д пространство для активации GPU, но гугл уже сам это сделал своим translateZ(0) так что нужен другой подход видимо
Silm: Это правильный способ, но он пока мне не доступен.
Я слишком много распыляюсь. Нехватало еще сейчас переключиться на изучение php в ущерб изучению javascript. Мой мозг мыслит статикой. Но он начинает уже задавать первые вопросы: а что находится за пределами?)
Нужно время.
Silm: ознакомился с простенькими cms. Их слишклм много и те что понравились оказались платными. Но появилась другая идея. В админке вбиваем текст. Этот текст далее отправляется в php-скрипт. Скрипт сканирует хтмл файл, добавляет туда этот текст внутрь определенного тега и сохраняет файл (имитируем загрузку по фтп по сути обновленного файла)
Нашел даже уже готовый парсер. simplehtmldom.sourceforge.net
Что скажете?
onclick?