Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: mmm от 10 Сентября 2003, 04:40:37

Название: Какой порядок загрузки страницы.
Отправлено: mmm от 10 Сентября 2003, 04:40:37
WEB Мастера, очень интересует такой вопрос - какой порядок загрузки старницы.

Мои размышления:
Я предпологаю, что порядок загрузки зависит от браузера, точнее от разработчиков браузера.
Далее сделал такой вывод: загрузка страницы происходит не последовательно (построчно), а несколькими потоками за секунду. Т.е. когда на страничке есть рисунок и текст, и рисунок (логотип например) в коде стоит на первом месте, а текст после, то при загрузке страницы визуально видим, что загрузка рисунка и текста происходит параллельно. Браузер начинает загружать рисунок, но половину ресурсов отдаёт на дальнейшие строки (в данном примере
вторая половина ресурсов пойдёт на загрузку текста). Примеров много. Тогда такой вопрос - возможно ли управлять распределением ресурсов.
Второстепенный вопрос: как заставить, чтобы сначала загрузился один слой, а потом только следующий.

***
И ОСНОВНОЙ ВОПРОС такой: я так понял, сначала браузер загружает метатэги и тэг title. А что потом? Если у нас
скрипт находиться между тэгами head и в нём я объявляю переменные, а потом идёт куча функций. Что будет грузиться: всё что после тэга Body или скрипты. Предположим в начале будет грузиться тэг Body, но тогда если я между тэгами Body обращусь к функции, что произойдёт?
Название: Какой порядок загрузки страницы.
Отправлено: mike от 10 Сентября 2003, 12:22:06
Цитировать
mmm:
И ОСНОВНОЙ ВОПРОС такой: я так понял, сначала браузер загружает метатэги и тэг title. А что потом? Если у нас
скрипт находиться между тэгами head и в нём я объявляю переменные, а потом идёт куча функций. Что будет грузиться: всё что после тэга Body или скрипты. Предположим в начале будет грузиться тэг Body, но тогда если я между тэгами Body обращусь к функции, что произойдёт?

Насколько я помню, скрипты грузятся последовательно, т.к. в любом из них может быть вызов document.write(). Поэтому если где-то указан скрипт, то он будет скачан, выполнен и только после этого будет продолжено формирование страницы.
Название: Какой порядок загрузки страницы.
Отправлено: Oak от 11 Сентября 2003, 03:01:47
Mike: а помоему с таким подходом где-то в чем-то были глюки.... В чем-то гарантировалось что все скрипты будут на месте только в момент срабатывания "body onload". А для проверки стоит в конец тех скриптов запихивать "var module1_loaded=true" и проверять в оснвной HTML-ке.


mmm: Если скрипты в той же странице - то они загрузятся перед body. Если он подключены как внешние файлы через src= , то смотри что Mike написал.

Кроме того у некоторых броузеров операции "скачивания" html-ки и запуск в ней скриптов (включая inline-овые и write-ы) - это разные стадии обработки страницы и могут не совпадать.
Название: Какой порядок загрузки страницы.
Отправлено: mike от 11 Сентября 2003, 11:20:21
Oak
Есть какой-нибудь реальный пример таких браузеров, в которых последовательность скриптов исполняется не по очереди, а по мере загрузки?
Название: Какой порядок загрузки страницы.
Отправлено: Oak от 12 Сентября 2003, 01:37:53
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.
Название: Какой порядок загрузки страницы.
Отправлено: mike от 12 Сентября 2003, 10:49:02
Цитировать
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 так и делается). Если использовать нормальные теги