Использование неблокирующих сценариев

Чем больше я использую JavaScript, тем больше я пытаюсь найти эффективные способы загрузки и выполнения моих скриптов. Один из методов, который я нашел действительно полезным, - это загрузка javascript без блокировки.

function include_js(url) { 
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}

include_js('script.js');

В JavaScript также есть оконный метод, который выполняется после загрузки страницы.

window.onload = function() {
 alert('Script executed onload');
};

Я хочу знать, как браузер обрабатывает скрипт, выполняемый методом window.onload, блокирующий или неблокирующий скрипт?

1
задан Justin Johnson 24 August 2010 в 07:56
поделиться

2 ответа

Я хочу знать, как сценарий обработки браузера, выполняемый метод window.onload, блокирует ли он или неблокирующий скрипт?

Вы имеете в виду, как выполняется код в обработчике событий? Он работает асинхронно, но, поскольку JavaScript имеет только один поток, он блокируется и будет блокироваться до тех пор, пока поток не станет доступным.

См. эту статью о том, как работают таймеры, чтобы лучше понять, как ведут себя асинхронные методы в среде с одним потоком.

Единственный способ получить код JavaScript, который выполняется параллельно с другим кодом JavaScript, — это использовать веб воркеры, которые фактически используют отдельный поток.

1
ответ дан 2 September 2019 в 21:54
поделиться

Это не блокирующий. Вы просто назначаете переменную функции, и выполнение другого скрипта продолжается. После загрузки DOM вызывается назначенный обратный вызов.

1
ответ дан 2 September 2019 в 21:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: