JS Non Necessario al Primo Caricamento
Anche lato JS, possiamo avere problemi di performance. Se il nostro modulo utilizza JS per eseguire operazioni, possiamo incorrere in problemi di performance se il JS viene caricato in modo sincrono anche quando non è necessario.
Per ottimizzare l'inclusione e l'esecuzione dei file Javascript, possiamo adottare diverse strategie.
Ottimizzazione del Caricamento JS
Cerchiamo di distinguere i trigger che potrebbero servirci, e di includere il JS solo quando necessario. I trigger più comuni includono:
- Visualizzazione di un dato elemento in pagina (viewport trigger)
- Interazione con elementi
Esempi Pratici per Ciascun Trigger
Visualizzazione di un Dato Elemento in Pagina
Ipotizziamo di voler includere un widget che visualizza le recensioni del nostro sito e posizionarlo vicino al footer. Sarebbe inefficiente caricare il codice JS al caricamento della pagina o anche utilizzare defer per caricarlo alla fine. Invece, possiamo caricare il JS solo quando l'utente sta per raggiungere il footer.
Implementazione:
Per implementare questa logica, Ector offre una funzione integrata che permette di effettuarlo in modo semplice.
- Crea il Div che farà da Trigger:
<div in-viewport v-id="widget"></div>
- Includi lo Script con lo stesso v-id e tipo
text/viewport
:
<script type="text/viewport" v-id="widget" src="https://url.com/widget.js"></script>
In questo modo, il JS verrà caricato solo quando l'elemento sarà visibile in pagina.
Interazione con Elementi
Questo trigger presuppone che per caricare un dato script, dobbiamo prima interagire con gli elementi. Ad esempio, sarebbe inefficiente caricare il motore di ricerca se l'utente non effettua una ricerca. Carichiamo il widget solo quando l'utente clicca sul campo di ricerca.
Implementazione:
Colleghiamoci all'evento o alla serie di eventi che fanno da trigger ed includiamo il file JS:
<script>
document.getElementById('search').addEventListener('click', function() {
var script = document.createElement('script');
script.src = 'https://url.com/search.js';
document.head.appendChild(script);
});
</script>
Conclusione
Ottimizzare il caricamento dei file JS è essenziale per migliorare le performance del sito. Caricando i file solo quando necessario, si riduce il carico iniziale della pagina, migliorando l'esperienza utente. Utilizza i trigger come la visualizzazione degli elementi in pagina o le interazioni dell'utente per caricare dinamicamente i file JS solo quando servono.