Функция jquery .ready()
запускается, как только иерархия DOM полностью загружена. Это обычно происходит после того, как все изображения были загружены. Причина, по которой он не ожидает загрузки документов scripts / css, заключается в том, что они «связаны», то есть загружаются извне и остаются в кеше, пока основной код транслируется на страницу, доступную для просмотра.
Если скрипт, который у вас есть в $document.ready(function{})
, использует внешние ресурсы, используйте <body onload="function()">
или $document.ready($document.load(asset),function{})
, если вы хотите загрузить определенные документы / активы, тогда функция или скрипт.
Функция <body onload="function()">
отличается от функции .ready()
, потому что функция .ready()
ожидает построения DOM (как я говорил ранее), а функция <body onload="function()">
ожидает страницу, а не DOM, на самом деле начать загружать или рендерить. Функция .load()
отличается от события, поскольку она загружает ресурсы, файлы или даже фрагменты кода на страницу. Использование этого метода в теории было бы хорошо, потому что тогда не было бы необходимости добавлять что-либо к телу.
Более подробную информацию (и более подробное объяснение) можно найти в http://api.jquery.com/ready/ и http://api.jquery.com/load/.
Надеюсь, это поможет.