Функция $.holdReady()

Определение и применение

Функция $.holdReady() задерживает выполнение обработчиков готовности jQuery. В старых загрузчиках её использовали, когда перед инициализацией интерфейса нужно было дождаться дополнительной настройки или скрипта.

Синтаксис

JavaScript
$.holdReady(true);
// После завершения подготовки:
$.holdReady(false);

Параметры и возвращаемое значение

Аргумент true добавляет одну задержку, false снимает одну. Каждому удержанию должен соответствовать вызов освобождения. Результат — undefined. Удержание устанавливают сразу после подключения jQuery, до выполнения обработчиков готовности.

Функция не останавливает разбор HTML и не задерживает браузерное событие DOMContentLoaded. Она действует на готовность jQuery во всём документе. После того как готовность уже обработана, создать новую фазу ожидания таким способом нельзя.

Особенности и совместимость

API устарел с 3.2, но доступен в полной 4.0. Вместо глобального удержания ожидайте конкретные зависимости: Promise.all([Promise.resolve($.ready), preparation]). Это не задерживает независимые обработчики других компонентов.

В старом коде снимайте удержание и при ошибке подготовки, иначе интерфейс может не инициализироваться. Пример устанавливает задержку синхронно, пока документ примера ещё разбирается.

Документация

Пример старого кода

Задержка и освобождение: попробуйте сами

Сначала завершится подготовка, затем выполнится зарегистрированный обработчик готовности. Используется jQuery 4.0.0.

index.html
HTML
<pre id="result"></pre>
main.js
JavaScript
$.holdReady(true)
$(function () {
    $('#result').append('DOM разрешён')
})
setTimeout(function () {
    $('#result').append('Подготовка завершена → ')
    $.holdReady(false)
}, 100)