J'ai un site Web, http://smodin.me , que j'essaie d'optimiser le classement de la vitesse des pages de phare. Je viens de passer de SSR avec mise en cache nginx à next export
en utilisant exportPathMap
et getInitialProps
(également avec la mise en cache nginx).
Page d'intérêt spécifique: https://smodin.me/free-english-rewriter-and-spinner (obtient 2 millions de visites/mois, les autres pages se chargent plus rapidement mais ont toujours le problème).
Après le passage en statique, la première image de contenu apparaît chargée en 2-2,5s pour "3G lente". Cependant, le temps d'exécution de JS prend environ 3-6 secondes.
Questions:
Pourquoi l'évaluation des scripts prend-elle 3 à 6 secondes lorsque j'utilise une exportation statique, j'avais l'impression que ce serait assez rapide?
Existe-t-il des moyens d'optimiser le temps d'exécution de nextjs JS? Ou peut-être un paramètre Webpack?
Essayez d'encapsuler des modules lourds comme ceci:
import dynamic from 'next/dynamic';
import PreDynamicState from './PreDynamicState';
const DynamicInnerComp = dynamic(() => import('./MyHeavyModule'), {
ssr: false,
loading: () => <PreDynamicState />
});
export const MyQuicklyLoadingPage: FC = () => {
return (
<div>
<h1>Welcome to the page!</h1>
<p>You'll see this text</p>
<p>Before we load the heavy stuff below</p>
<p>Large markdown files containing lots of images, etc.</p>
<DynamicInnerComp />
</div>
);
};
Évaluez également si quelque chose comme essayer d'utiliser Preact améliorera les performances. Je ne sais pas à quel point c'est facile de faire cela avec nextJS. J'ai trouvé ceci https://github.com/developit/nextjs-preact-demo
J'utilise aussi parfois ceci pour les modules qui ne peuvent pas être rendus avec SSR.