2010-08-24 2 views
1

Чем больше я использую 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

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

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

См. this article about how timers work, чтобы лучше понять, как асинхронные методы ведут себя в среде с одним потоком.

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

+0

Спасибо за ссылки, это ответ, который я искал. –

1

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

Смежные вопросы