The My Opera forums have been replaced with forums.opera.com. Please head over there to discuss Opera's products and features

See the new Forums

Различные последовательности загрузки скриптов и стилей на странице

Forums » Помощь: вопросы и проблемы » Проблемы с конкретными сайтами

You need to be logged in to post in the forums. If you do not have an account, please sign up first.

Go to last post

18. November 2011, 18:03:36

webcane

Posts: 9

Различные последовательности загрузки скриптов и стилей на странице

1. Загружаем стили из файла css в head a скрипты (например, JQuery c
$ (Document).ready() ..), в Body после того места, где будут применены стили.
То в этом случае скрипты загрузятся прежде стилей.

2. Если перенести включение стилей в head, то они будут загружены после стилей, как и должно быть.

3. Если стили описаны в HTML-файл, а не загружаются из CSS
файл, то в данном случае место загрузки скриптов не имеет значения.

(Opera 11.52, файлы локальные)
Походу баг.
Может кто сталкивался с подобным?

21. November 2011, 19:52:56

SATAB

Momentator

Posts: 4974

В чём баг? Загрузка или выполнение (применение) имеется ввиду?

З.Ы. А если head расположить после Body? wink (Известный трюк с осликом...).
Моя сторінка на MyOpera • Я •          F Ukraine - тримаємо порох сухим!
↑ На букву Я целить мышкин указатель! ↑
Использую Opera 10.10 build 1893 - новыми лишь поиграться можно
RIP
Opera
30.08.1995 - 13.02.2013

-> Link <-
☺ Я ВКонтакт лишь по нужде хожу! ☺      
У меня всё работает! Догадайтесь - через что!
► Дом - 30 Мбит\с, работа - EDGE - до ~100 Кбит\с ◄
Что делать, если опера зависает и сбоит

22. November 2011, 05:25:19

webcane

Posts: 9

Originally posted by SATAB:

В чём баг? Загрузка или выполнение (применение) имеется ввиду?
З.Ы. А если head расположить после Body? wink (Известный трюк с осликом...).



head двигать не пробовал. Мне кажется, что это изврат какой-то. Скрипты вниз для того и сносят, чтоб грузились в последнюю очередь.

Баг в том что если скрипты выносишь из body, то они загружаются быстрее стилей. А это не правильное поведение.
Допустим, что в скрипте идет анализ/обработка стилей, а они еще не применялись. В этом случае скрипт отработает неверно. И на странице мы увидим не то что ожидали. В др. браузерах все работает с ожидаемым эффектом, т.к. последовательность загрузки элементов на странице правильная.

22. November 2011, 19:06:15

SATAB

Momentator

Posts: 4974

Originally posted by webcane:

1. Загружаем стили из файла css в head a скрипты... ... в Body... . ...скрипты загрузятся прежде стилей.

Походу - баг.
Моя сторінка на MyOpera • Я •          F Ukraine - тримаємо порох сухим!
↑ На букву Я целить мышкин указатель! ↑
Использую Opera 10.10 build 1893 - новыми лишь поиграться можно
RIP
Opera
30.08.1995 - 13.02.2013

-> Link <-
☺ Я ВКонтакт лишь по нужде хожу! ☺      
У меня всё работает! Догадайтесь - через что!
► Дом - 30 Мбит\с, работа - EDGE - до ~100 Кбит\с ◄
Что делать, если опера зависает и сбоит

23. November 2011, 06:02:48

webcane

Posts: 9

Баг завел (ID: DSK-350803) но ответа пока нет.

23. November 2011, 10:11:39

IlyaShpankov

Модератор

Posts: 4074

Originally posted by webcane:

Баг завел (ID: DSK-350803) но ответа пока нет.


В очереди на проверку.

26. November 2011, 19:58:31

Opera Software

alex-shpak

Русский Product Tester, Desktop Team

Posts: 397

Короткий ответ: это не баг, а фича.

Более подробный ответ (на англ) есть здесь: http://my.opera.com/nicomen/blog/2007/07/08/domcontentloaded-gotcha-with-external-stylesheets, а ниже мое мнение:

$(Document).ready() в JQuery, как я понимаю, соответствует событию DOMContentLoaded, которое, как следует из названия, срабатывает тогда, когда закончилось построение дерева HTML-элементов, то есть загружен и обработан основной HTML-документ, а также, может быть, скрипты (если они могут вызовом document.write() дописывать HTML). Загрузки картинок для этого не требуется - они загружаются параллельно и могут либо успеть, либо не успеть к загрузке основного документа.

Нужно ждать CSS или не нужно - спорный вопрос. Ни Mozilla, ни спецификация ясного ответа на этот вопрос не дают. Видимо, тут разработчики браузеров имеют право поступать по своему усмотрению, а разработчикам веб-сайтов не следует полагаться на какое-то определенное поведение браузера.

Поэтому в данном случае могу предложить привязаться к событию load конкретного элемента style.

28. November 2011, 07:01:30

webcane

Posts: 9

это было бы фичей, если бы скрипты загружались до стилей, независимо от положения в структуре страницы. Для меня очевидным решением оказалось - не выносить скрипты из головы страницы. Придется делать локальные поправочки в Boilerplate.

Forums » Помощь: вопросы и проблемы » Проблемы с конкретными сайтами