Il comportamento predefinito del browser quando incontra un elemento script è di interrompere il processo del documento (DOM), caricare il file dello script ed eseguirlo. Solo dopo l'esecuzione del codice dello script il browser riprende a processare il resto dell'HTML della pagina.
Per questo motivo non è possibile accedere agli elementi della pagina da uno script caricato nell'head della pagina (o comunque inserito prima degli elementi necessari). Le soluzioni comunemente adottate sono quelle di inserire gli script in coda alla pagina (appena prima della chiusura del tag body) oppure di specificare nello script stesso che il codice dovrà essere eseguito solo a seguito dell'evento load del body (jQuery mette a disposizione anche un evento ready - $(document).ready() - che viene scatenato prima che il documento sia effettivamente completo, non contemplando ad esempio il caricamento delle immagini).
Con HTML5 possiamo invece indicare direttamente al browser di posticipare l'esecuzione di uno script fino a che il documento non sarà completamente disponibile semplicemente specificando l'attributo defer:
<script src="sample.js" defer></script>
L'attributo defer è però valido solo per gli script che abbiano un attributo src specificato, ovvero solo se lo script è contenuto in un file esterno rispetto al documento.
L'attributo defer è supportato dalle ultime versioni di tutti i principali browser.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Potenziare la ricerca su Cosmos DB con Full Text Search
Recuperare App Service cancellati su Azure
Recuperare l'ultima versione di una release di GitHub
Eliminare record doppi in Sql Server
Il nuovo controllo Range di Blazor 9
Configurare e gestire sidecar container in Azure App Service
Ordine e importanza per @layer in CSS
Utilizzare i variable font nel CSS
Disabilitare le run concorrenti di una pipeline di Azure DevOps
.NET Aspire per applicazioni distribuite
Supportare la crittografia di ASP.NET Core con Azure Container App
Gestione ciclo di vita in .NET Aspire
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Impersonation di utente per l'esecuzione di codice in una pagina ASP.NET
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!