Ho una certa confusione intorno al nuovo attributo async all'elemento di script in HTML5 che spero che qualcuno possa dare una risposta chiara a.Qual è esattamente il vantaggio dell'attributo async HTML5 sugli elementi di script?
I browser sono in grado di connessioni parallele, pertanto le immagini verranno scaricate in parallelo. Ma qualsiasi javascript esterno non viene scaricato in parallelo con altri javascript esterni e immagini. Gli script bloccano il caricamento della pagina finché non sono stati scaricati ed eseguiti.
Per scaricare uno script senza bloccare il resto della pagina di caricamento, la tecnica più comune è quello di creare un elemento di script, come Google Analytics snippet fa:
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.src = '...ga.js';
ga.async = true;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
io non sono sicuro di come funziona esattamente - sia
- il browser analizza e rende la pagina, quindi una volta che ha finito nota il DOM è cambiato, con conseguente script ga.js essere scaricato ed eseguito
o
- il browser inizia a scaricare il codice JavaScript in parallelo con altre risorse.
Penso che sia il secondo.
Il nuovo snippet di Google Analytics asincrono include l'attributo async HTML5 nell'elemento di script che crea. Ciò non aiuterà il problema del blocco della pagina, che è già stato risolto con la tecnica "Script DOM Element". Quindi cosa aggiunge asincrono all'immagine? Secondo w3schools, "se è presente async, lo script viene eseguito in modo asincrono con il resto della pagina (lo script verrà eseguito mentre la pagina continua l'analisi)".
E secondo il sito di Steve Souders, "il vantaggio principale di questo [attributo async] è che dice al browser che gli script successivi possono essere eseguiti immediatamente - non devono aspettare ga.js".
Quindi la tecnica degli elementi DOM di Script e Sincronizzazione risolvono entrambi lo stesso problema?
Grazie.
Ciao. Grazie per la risposta. Penso che tu sia d'accordo sul fatto che non ci siano differenze? Questa è la conclusione cui sono giunto, ma ho notato che questo post del rispettato Steve Souders suggerisce che c'è un netto vantaggio dall'uso del tag asincrono oltre la tecnica dell'elemento DOM Script [collegamento] (http: //www.stevesouders .com/blog/2009/12/01/google-analytics-va-async /). – user265330
@ user265330 - l'articolo è del 2009 e non menziona l'attributo ASYNC sui tag di script. –
Sì, lo fa. Sotto 'The Async snippet', il codice usa setAttribute per impostare async (ok, non come nel più recente ga snippet, ma è irrilevante) e poi continua a dire "... l'attributo 'async' è impostato su 'vero'. Molto bello! Il vantaggio principale di questo è che dice al browser che gli script successivi possono essere eseguiti immediatamente - non devono aspettare per ga.js. " – user265330