$ (документ) .ready () также готовый CSS?

Для Windows (cmd.exe):

command > file1 & type file1 >> file2
48
задан geowa4 24 August 2009 в 20:35
поделиться

3 ответа

Из примечаний к выпуску 1.3 :

Метод ready () больше не пытается давать никаких гарантий относительно ожидания загрузки всех таблиц стилей. Вместо этого все файлы CSS должны быть включены перед скриптами на странице. Дополнительная информация

Из документации ready (fn) :

Примечание. Убедитесь, что все таблицы стилей включены перед вашими сценариями (особенно те, которые вызывают функцию готовности). Это обеспечит правильное определение всех свойств элемента до начала выполнения кода jQuery. Невыполнение этого требования вызовет спорадические проблемы, особенно в браузерах на основе WebKit, таких как Safari.

Обратите внимание, что вышесказанное даже не касается фактического рендеринга CSS, поэтому вы все равно можете увидеть изменение экрана, когда готов () срабатывает. Но это должно избавить вас от проблем.

На самом деле, мне кажется немного странным, что простое размещение CSS над JS решит все проблемы. CSS загружается асинхронно, поэтому загрузка JS может начинаться и завершаться , пока CSS еще загружается. Итак, если вышеперечисленное является решением, тогда выполнение любого JS-кода будет остановлено до тех пор, пока не будут выполнены все предыдущие запросы?

Я провел некоторое тестирование, и действительно, иногда JS откладывается пока не загрузится CSS. Я не знаю почему, потому что водопад показывает, что JS завершил загрузку задолго до завершения загрузки CSS.

См. JS Bin для некоторого HTML и его результатов ( это имеет задержку 10 секунд), и см. webpagetest.org для его результатов водопада . Здесь используется сценарий Стива Содерса. cuzillion.com для имитации медленных ответов. В водопаде ссылка на resource.cgi является CSS. Итак, в Internet Explorer первый внешний JS начинает загружаться сразу после запроса CSS (но для завершения этого CSS потребуется еще 10 секунд). Но второй тег