Predisposto per DOM JavaScript

  1. Usa la funzione jQuery ready() per chiamare le funzioni quando DOM è pronto
  2. Approccio vanilla JavaScript per chiamare le funzioni quando DOM è pronto
Predisposto per DOM JavaScript

Il caricamento di un sito web inizia dal download del documento HTML. Una volta scaricato il documento HTML, l’HTML viene analizzato e gli asset richiesti vengono scaricati. Dopo che l’HTML è stato analizzato, il DOM e il CSS vengono visualizzati in parallelo. Dopodiché, il browser si occupa delle funzioni onload di JavaScript. Questo è il lasso di tempo che vogliamo chiamare le funzioni perché HTML, CSS, DOM sono renderizzati correttamente. Questo tutorial insegna come chiamare una funzione quando il DOM è pronto.

Usa la funzione jQuery ready() per chiamare le funzioni quando DOM è pronto

La funzione ready() in jQuery esegue il codice quando il DOM è pronto. Aspetta che tutti gli elementi siano completamente caricati e quindi cerca di accedervi e manipolarli. Possiamo selezionare l’elemento documento, un elemento vuoto per chiamare una funzione, o anche chiamare direttamente una funzione.

$(document).ready(function() {
  // callback function / handler
});

È un metodo compatibile con tutti i browser e può essere chiamato da qualsiasi punto del codice HTML.

Approccio vanilla JavaScript per chiamare le funzioni quando DOM è pronto

Possiamo creare l’equivalente JavaScript della funzione ready() di jQuery utilizzando l’evento DOMContentLoaded. Possiamo aggiungere un listener di eventi per DOMContentLoaded e chiamare la nostra funzione desiderata con quel listener di eventi. Ma c’è un problema, la richiamata non verrà attivata se l’evento si è già verificato. Quindi, ci occupiamo di questa condizione controllando lo stato di pronto dell’oggetto documento.

const callback = function() {};

if (document.readyState === 'complete' ||
    document.readyState === 'interactive') {
  setTimeout(callback, 1);
} else {
  document.addEventListener('DOMContentLoaded', callback);
}

Ci sono alcuni trucchi diversi da questi metodi che ci aiutano a risolvere questo problema ma potrebbero non essere l’ideale in tutti i casi.

  • Usa l’attributo onload della finestra per chiamare la funzione JavaScript.
  • Utilizza l’attributo onload del corpo per chiamare la funzione JavaScript. Questo metodo può essere terribilmente lento in quanto attende il caricamento di ogni singolo elemento.
  • Possiamo chiamare la funzione da eseguire dalla fine del corpo. Alla fine del corpo, DOM è opportunamente renderizzato e pronto. Quindi, non ci sono problemi con le chiamate di funzione relative a qualsiasi elemento. Funziona molto più velocemente dell’handler onload del corpo perché non attende che le immagini vengano caricate completamente.
Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Articolo correlato - JavaScript DOM