Автор Тема: Какой порядок загрузки страницы.  (Прочитано 5013 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mmm

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Какой порядок загрузки страницы.
« : 10 Сентября 2003, 04:40:37 »
WEB Мастера, очень интересует такой вопрос - какой порядок загрузки старницы.

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

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

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Какой порядок загрузки страницы.
« Ответ #1 : 10 Сентября 2003, 12:22:06 »
Цитировать
mmm:
И ОСНОВНОЙ ВОПРОС такой: я так понял, сначала браузер загружает метатэги и тэг title. А что потом? Если у нас
скрипт находиться между тэгами head и в нём я объявляю переменные, а потом идёт куча функций. Что будет грузиться: всё что после тэга Body или скрипты. Предположим в начале будет грузиться тэг Body, но тогда если я между тэгами Body обращусь к функции, что произойдёт?

Насколько я помню, скрипты грузятся последовательно, т.к. в любом из них может быть вызов document.write(). Поэтому если где-то указан скрипт, то он будет скачан, выполнен и только после этого будет продолжено формирование страницы.
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Какой порядок загрузки страницы.
« Ответ #2 : 11 Сентября 2003, 03:01:47 »
Mike: а помоему с таким подходом где-то в чем-то были глюки.... В чем-то гарантировалось что все скрипты будут на месте только в момент срабатывания "body onload". А для проверки стоит в конец тех скриптов запихивать "var module1_loaded=true" и проверять в оснвной HTML-ке.


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

Кроме того у некоторых броузеров операции "скачивания" html-ки и запуск в ней скриптов (включая inline-овые и write-ы) - это разные стадии обработки страницы и могут не совпадать.
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Какой порядок загрузки страницы.
« Ответ #3 : 11 Сентября 2003, 11:20:21 »
Oak
Есть какой-нибудь реальный пример таких браузеров, в которых последовательность скриптов исполняется не по очереди, а по мере загрузки?
[ основной браузер когда-то был, теперь попробуй разберись =]

Оффлайн Oak

  • Дерево
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1481
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Какой порядок загрузки страницы.
« Ответ #4 : 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.
[основной броузер - SeaMonkey] Netscape Communicator 4 - is the best :) // see sources

Оффлайн mike

  • ProPerl\'er
  • Старожил
  • ****
  • Сообщений: 435
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Какой порядок загрузки страницы.
« Ответ #5 : 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 так и делается). Если использовать нормальные теги
Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28