Quanto tempo passiamo a fissare lo schermo bianco in attesa che si carichi una pagina web richiesta al browser? Marja Hölttä e Daniel Vogelheim, Resident Loader Coders di Chromium, si sono posti questo problema decisi a trovare una soluzione. Nella più recente versione (41.0.2272.89) del celeberrimo browser web di casa Google, Chrome, sono state introdotte due nuove tecniche per il caricamento dei file JavaScript: il code caching e lo script streaming.
È importante chiarire da subito che, fino alla versione precedente, la gestione dei JavaScript era consequenziale e rispettava il seguente ordine: download del codice, parsing, compilazione, esecuzione. Ciò comportava che il parsing (ovvero il processo di analisi del flusso continuo di dati in ingresso) non sarebbe iniziato fino al termine del download dello script, quindi la perdita di tempo causata dal più che ridotto sfruttamento della CPU era notevole.
Introducendo lo script streaming, invece, Chrome analizza su un thread separato differente da quello principale gli script async e deferred attivando il parsing nel momento in cui inizia il download. Tutto ciò, agli occhi dell’utente finale, appare sotto forma di una maggiore velocità di caricamento, fino al 10% in più rispetto a prima.
L’altra tecnica, chiamata code caching, riguarda la compilazione del codice JavaScript ed è attualmente in uso nella versione 42 beta del browser. Essa può risultare utile nel caso di una visualizzazione periodica della medesima pagina poiché in tale caso, grazie ad una copia locale del codice compilato, si possono trascurare i passaggi di scaricamento, parsing e compilazione riportati nel grafico sopra.
Comunemente i browser web traducono il codice JavaScript in modo che il processore sia in grado di eseguirlo ogni volta che la pagina viene visualizzata, ma lo scartano nel momento in cui questa viene chiusa. Dunque il nuovo tipo di approccio velocizza del 40% la compilazione con un conseguente risparmio energetico nel caso dei dispositivi mobili.
Tuttavia non è ancora noto se, alla chiusura del browser Chrome, venga conservato questo diverso tipo di cache.