Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: mmm от 10 Сентября 2003, 04:40:37
-
WEB Мастера, очень интересует такой вопрос - какой порядок загрузки старницы.
Мои размышления:
Я предпологаю, что порядок загрузки зависит от браузера, точнее от разработчиков браузера.
Далее сделал такой вывод: загрузка страницы происходит не последовательно (построчно), а несколькими потоками за секунду. Т.е. когда на страничке есть рисунок и текст, и рисунок (логотип например) в коде стоит на первом месте, а текст после, то при загрузке страницы визуально видим, что загрузка рисунка и текста происходит параллельно. Браузер начинает загружать рисунок, но половину ресурсов отдаёт на дальнейшие строки (в данном примере
вторая половина ресурсов пойдёт на загрузку текста). Примеров много. Тогда такой вопрос - возможно ли управлять распределением ресурсов.
Второстепенный вопрос: как заставить, чтобы сначала загрузился один слой, а потом только следующий.
***
И ОСНОВНОЙ ВОПРОС такой: я так понял, сначала браузер загружает метатэги и тэг title. А что потом? Если у нас
скрипт находиться между тэгами head и в нём я объявляю переменные, а потом идёт куча функций. Что будет грузиться: всё что после тэга Body или скрипты. Предположим в начале будет грузиться тэг Body, но тогда если я между тэгами Body обращусь к функции, что произойдёт?
-
mmm:
И ОСНОВНОЙ ВОПРОС такой: я так понял, сначала браузер загружает метатэги и тэг title. А что потом? Если у нас
скрипт находиться между тэгами head и в нём я объявляю переменные, а потом идёт куча функций. Что будет грузиться: всё что после тэга Body или скрипты. Предположим в начале будет грузиться тэг Body, но тогда если я между тэгами Body обращусь к функции, что произойдёт?
Насколько я помню, скрипты грузятся последовательно, т.к. в любом из них может быть вызов document.write(). Поэтому если где-то указан скрипт, то он будет скачан, выполнен и только после этого будет продолжено формирование страницы.
-
Mike: а помоему с таким подходом где-то в чем-то были глюки.... В чем-то гарантировалось что все скрипты будут на месте только в момент срабатывания "body onload". А для проверки стоит в конец тех скриптов запихивать "var module1_loaded=true" и проверять в оснвной HTML-ке.
mmm: Если скрипты в той же странице - то они загрузятся перед body. Если он подключены как внешние файлы через src= , то смотри что Mike написал.
Кроме того у некоторых броузеров операции "скачивания" html-ки и запуск в ней скриптов (включая inline-овые и write-ы) - это разные стадии обработки страницы и могут не совпадать.
-
Oak
Есть какой-нибудь реальный пример таких браузеров, в которых последовательность скриптов исполняется не по очереди, а по мере загрузки?
-
Mike
я не видел это сам лично - сложно проверять такое :)
я видел фразы от разработчиков DynApi-II которые косвенно на это указывают.
Например
Second, using "javascript:" has unintended side effects. For example, it
will freeze animated GIFs.
If someone clicks the link while a script is being loaded, the browser
will abort loading the script.
т.е ссылка уже на экране
Google:
http://www.webmasterworld.com/forum21/5663.htm
хмм... или я с динамичекой загрузкой что-то пеерпутал:
http://www.webreference.com/js/tips/010301.html
О - вот еще:
http://www.webreference.com/dhtml/column27/fade3ns401script.html
The old Navigator versions execute the second document.write immediately after the first document.write, while the first SCRIPT is still loading.
-
Oak:
The old Navigator versions execute the second document.write immediately after the first document.write, while the first SCRIPT is still loading.
Это что касается догрузки с помощью document.write (ведь в DynAPI так и делается). Если использовать нормальные теги