CloudFlare ha una tecnologia abbastanza innovativa chiamata Rocket Loader (sia su account gratuiti che a pagamento). Ma come funziona davvero?
Hanno un paio di pagine che descrivono la tecnologia , ma non molti dettagli tecnici. Una caratteristica chiave è che tutto il Javascript viene caricato in modo non bloccante (in modo asincrono) , il che è un'impresa davvero incredibile! Ciò significa che è possibile eseguire il rendering di HTML / CSS senza attendere il caricamento e l'esecuzione degli script.
Come è possibile?
Sicuramente non può semplicemente cambiare tutti i <script>
tag da usare async="true"
o in defer="true"
quanto ciò spezzerebbe diverse cose ...
- Gli script devono ancora essere caricati nell'ordine corretto (ad esempio, non è possibile caricare i plug-in jQuery fino a quando non è stata caricata la libreria jQuery.)
document.write()
le chiamate in questi script devono funzionare ( apparentemente non fanno nulla nei tipici script asincroni ).- Che dire dell'evento DOMContentLoaded? Se alcuni script vengono caricati dopo l'attivazione, i gestori degli eventi non vengono attivati?
E come sviluppatore, c'è qualcos'altro di cui devo essere consapevole per garantire che i miei siti / script / plugin rimangano compatibili con Rocket Loader?