Ecco cosa rallenta il web: Javascript!

Se vi chiedete come mai, nonostante un computer nuovo e una connessione rapidissima, ancora le pagine impieghino spesso tempi ingiustificabili di caricamento la risposta l'ha trovata Apple. E' il codice javascript che blocca il caricamento troppo a lungo
Se vi chiedete come mai, nonostante un computer nuovo e una connessione rapidissima, ancora le pagine impieghino spesso tempi ingiustificabili di caricamento la risposta l'ha trovata Apple. E' il codice javascript che blocca il caricamento troppo a lungo

Come spesso accade la scoperta è stata frutto del caso. Il team di sviluppo di Safari, il browser per sistemi operativi Apple, cercando di capire come mai il caricamento delle pagine web continua spesso ad essere terribilmente lento, nonostante le velocità delle CPU crescano e quelle delle connessioni pure, ha trovato che è tutta colpa del codice Javascript.

Tutto quel rimbalzarsi informazioni, dati e richieste di dati tra server remoti, nonostante si svolga alla velocità delle luce, condiziona infatti in maniera sensibile la ricezione finale della pagina, specialmente perchè i browser aspettano di aver caricato il codice javascript prima di caricare il resto della pagina, dunque spesso ciò che accade è che fino a quando la comunicazione tra server remoti non è ultimata e il javascript eseguito non si va avanti con il caricamento della pagina.

Nel tentativo di ottimizzare WebKit, il motore di Safari, il team ha fatto delle prove sulla prima pagina del Wall Street Journal, scelta proprio per quanto è densa di codice javascript, e ha notato che calcolando 50 millisecondi per ogni giro che le informazioni dovevano fare tra il server del giornale e gli altri il tempo di caricamento raddoppiava da 3 a 6 secondi.

Il calcolo si basa sull’assioma che alla velocità della luce (quella cui viaggiano le informazioni nei cavi a fibra ottica) un dato impiega 1 millisecondo a fare 60 miglia, dunque un viaggio da una costa all’altra degli Stati Uniti dura 50 millisecondi e un viaggio transoceanico decisamente di più. Se a ciò si aggiunge che come detto il caricamento, dunque il viaggio delle informazioni, per il javascript non avviene in parallelo ma in sequenza si capisce come è possibile che i tempi raddoppino.

La soluzione per il prossimo Safari sarà scandagliare la pagina alla ricerca di quegli elementi che possono essere caricati parallelamente al codice javascript in modo da ridurre i tempi e azzerare le differenze. Ai webmaster per il momento rimangono invece poche altre opzioni: incorporare quante più informazioni è possibile in un unico file javascript oppure embeddare il codice direttamente nella pagina, oltre alla più ovvia che sarebbe usare quanto meno codice è possibile.

Ti consigliamo anche

Link copiato negli appunti