Я пытаюсь понять, что происходит между загрузкой страницы HTML и запросом отложенного внешнего ресурса через Javascript.
Протестировано на локальном (не требуется поиск DNS)
Почему кажется, что браузер тратит много времени на то, чтобы ничего не делать?
Моя страница пуста. Он содержит только скелет HTML, HEAD и BODY и необходимый код Javascript для вызова jQuery после загрузки страницы:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Demo
<script type="text/javascript">
function downloadJSAtOnload(){
var b = document.getElementsByTagName('body')[0];
var s = document.createElement("script"); s.async = true;
s.src = "jquery.min.js"
b.appendChild(s);
}
if (window.addEventListener){
window.addEventListener("load", downloadJSAtOnload, false);
}else if (window.attachEvent){
window.attachEvent("onload", downloadJSAtOnload);
}else{
window.onload = downloadJSAtOnload;
}
</script>
</body>
</html>
Это связано с тем, что для события onload
требуется некоторое время для запуска?
Я не могу воспроизвести его, но вот несколько способов дальнейшего изучения.
Запись производительности загрузки страницы. Выстройте таблицу сети с помощью Главного графика, чтобы отобразить сетевые запросы на активность основного потока. Возможно, CPU максимизирован, выполняя некоторую работу (возможно, расширение Chrome), что задерживает событие load
. См. Анализ производительности выполнения для ознакомления с пользовательским интерфейсом (этот учебник охватывает исполняемый файл, но пользовательский интерфейс загрузки является таким же).
Прикрепите код, используя атрибуты User Timing API или Navigating Timing, чтобы дополнительно измерить, когда скрипт начинает работать, когда запускается прослушиватель событий загрузки и т.д.
Дайте мне знать, если они помогут!