Любой загрузчик сценариев по умолчанию разблокирует загрузку сценариев из событий DOM-ready страницы и загрузки, по крайней мере, по намерению / определению.
Итак, простой ответ: НЕТ, LABjs не будет блокировать выполнение скрипта, пока не будет готова DOM. Некоторые сценарии, загруженные LABjs, могут выполняться до готовности к DOM, а другие могут выполняться после готовности к DOM.
Если у вас действительно есть случаи, когда вашему коду нужно ждать DOM, вы должны использовать такую среду, как jQuery, и использовать встроенную оболочку, готовую к DOM $(document).ready(...)
, чтобы сделать эту логику готовой к DOM.
Однако во многих случаях люди думают, что им нужно ждать готовности к DOM, тогда как они этого не делают:
Большинство людей сравнивают DOM-ready с "загрузка всех скриптов завершена". Если вы просто ждете DOM-ready, потому что вам нужно убедиться, что все ваши скрипты загружены, это ошибочное и неправильное предположение. Вместо этого используйте средство загрузчика сценариев, чтобы определить, когда все сценарии загружены, и запускайте их в соответствующее время, независимо от загрузки DOM. С LABjs это так же просто, как все ваши скрипты в одной цепочке $ LAB и окончательный .wait()
в конце цепочки - вы можете быть уверены, что ваш код в этом обратном вызове .wait()
не будет работать пока все скрипты не загрузятся и не запустятся.
Большинство людей думают, что им нужно ждать, пока DOM-ready сделает такие вещи, как присоединение обработчиков событий или запуск запросов Ajax. Это также неверное предположение. Если ваш код просто запрашивает у DOM элементы для присоединения к ним обработчиков событий или если вы вообще ничего не делаете с DOM, а вместо этого делаете вызовы Ajax, не заключайте вашу логику в оболочку, готовую к DOM.
С другой стороны, многие люди предполагают, что если ваш код выполняется в конце тега body, вам не нужно ждать готовности к DOM. Неправильно. DOM-ready - DOM-ready, независимо от того, где указан ваш код.
В общем, единственный раз, когда ваш код действительно должен быть обернут в DOM-готовую оболочку, это если он собирается изменить DOM. В противном случае, не ждите, пока DOM-ready запустит ваш код. Будьте умны в отношении того, что упаковано, а что нет.