Дело не в том, что файлы не используются, а в том, что большая часть файлов содержит код, который не выполняется / не требуется для рендеринга начальной страницы.
Что вы хотите сделать, так это разделить свой JavaScript на существенный и второстепенный.
Существенно все, что требуется для рендеринга / использования всего, что появляется над сгибом (контент, который появляется без прокрутки). Все остальное несущественно, поскольку страница может отображаться без него и загружаться в фоновом режиме.
Все дело в воспринимаемой скорости, сайту может потребоваться столько же времени для загрузки в целом, но если вы разделите свой JS таким образом, он будет загружаться намного быстрее, что повысит коэффициент конверсии и т. Д. . так далее.
Для этого вам придется либо вручную найти весь необходимый JS и упаковать его отдельно, либо использовать такой метод, как встряхивание дерева, чтобы удалить неиспользуемый код, а затем использовать разделение кода, чтобы в первую очередь обслуживать JS с высоким приоритетом (указанная статья была первой, которую я нашел о разделении кода в Angular, вам придется провести собственное исследование для этого. боюсь, поскольку я незнаком с рабочим процессом Angular).
Ленивая загрузка JS
Ниже приведен простой метод отложенной загрузки любого несущественного JS после того, как вы его определили, который работает вплоть до IE9.
var dfr = function () {
var n1 = document.getElementById("ds");
var r1 = document.createElement("div");
r1.innerHTML = n1.textContent;
document.body.appendChild(r1);
n1.parentElement.removeChild(n1);
};
var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
if (raf)
raf(function () {
window.setTimeout(dfr, 0);
});
else
window.addEventListener("load", dfr);
<head>
<noscript id="ds">
<script src="some-script-that-is-not-essential.js"></script>
</noscript>
</head>
person
Graham Ritchie
schedule
22.08.2020