Google PageSpeed Insights показывает неиспользуемый javascript, но он используется
2 ответа
ПРИМЕЧАНИЕ. Этот ответ вызван путаницей. OP не использует React, но отчет включает пример React. В любом случае это может быть полезно другим.
Если ваши компоненты загружаются динамически (только после запроса пользователя).
Ты можешь использовать React.lazy()
как предлагается в отчете для разделения кода, чтобы вы не загружали большой пакет, когда в нем нет необходимости.
Это решение не для SSR.
ПЕРЕД:
import ComponentB from './ComponentB';
function ComponentA() {
return (
<>
{/* After certain action probably like routes switch or any? */}
<ComponentB />
</>
);
}
ПОСЛЕ:
import React, { lazy } from 'react';
const ComponentB = lazy(() => import("./ComponentB.js"));
function ComponentA() {
return (
<>
{/* After certain action probably like routes switch or any? */}
<ComponentB />
</>
);
}
Вы можете загружать свои файлы сценариев в прокрутке. Когда пользователь начинает прокручивать страницу вниз, вы добавляете тег скрипта к своей голове и снова удаляете прослушиватель событий.
Добавляйте только сценарии, которых нет в области просмотра в начале, например, рекапчи. Обычно они находятся внизу.
function dynamicLoad(url) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
window.addEventListener("scroll", loadScripts);
function loadScripts() {
//load here as many dynamic scripts as you want
dynamicLoad("recaptcha url");
dynamicLoad("facebook.net url");
//end ------
window.removeEventListener("scroll", loadScripts);
}