Digital.it
QR code per la pagina originale
news_ad80892a3e27e1cc.jpg

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

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.

Se vuoi aggiornamenti su Ecco cosa rallenta il web: Javascript! inserisci la tua e-mail nel box qui sotto:

  • http://funcool.altervista.org/ Mattia

    Mi sembra la scoperta dell’acqua calda.

  • http://www.deswign.com sw

    io inizierei a eliminare qualche banner o pagina pubblicitaria..

  • http://sonovivoenonhopiupaura.blogspot.c Gabriele Niola

    Non direi dato che nessuno fino ad ora aveva risolto il problema.

  • http://www.semeru.it Massimo Guidi

    Mi associo a Mattia, che sia javascript il collo di bottiglia si sa da anni… se la notizia è la futura soluzione del problema allora forse il titolo doveva essere “Javascript non rallenterà più il web!”

  • http://funcool.altervista.org/ Mattia

    Da quando ho iniziato a programmare sul Web (qualche anno fa) ho sentito parlare di questa cosa e per risolvere il problema mi è sempre stato suggerito di utilizzare meno JavaScript possibile (anche per un fatto di usabilità).

  • http://sonovivoenonhopiupaura.blogspot.c Gabriele Niola

    Appunto. Mi sembra un deciso passo avanti e non una scoperta da poco poter utilizzare il javascript che vuoi senza rallentare il caricamento

  • Marco Grazia

    E come la mettiamo con la tecnocologia Ajax?
    Ce l’hanno sbandierata in tutti i modi, ci hanno detto che era il futuro e ora ci vengono a dire che rallenta il sistema … a me viene da ridere … per non piangere.

  • scettico

    in molti casi non servirebbe a nulla caricare prima l’html perché la pagina non funzionerebbe senza javascript, basti pensare ai servizi bancari online o ai tanti menu a tendina o dsplay:none gestiti via script… e se si clicca prima darebbe anche un errore!

  • http://sonovivoenonhopiupaura.blogspot.c Gabriele Niola

    Che sia javascript il collo di bottiglia è noto da anni ma solo a pochi, cioè agli sviluppatori

  • Sbalky

    Altolà. Non puoi “utilizzare tutto il JavaScript che vuoi senza rallentare il caricamento”, perché il modulo in questione “cercherà” di caricare gli elementi in parallelo, ma non hai alcuna assicurazione che questo sia sempre possibile.

  • Dage

    “embeddare”? Poveri noi.

  • http://sonovivoenonhopiupaura.blogspot.c Gabriele Niola

    questo lo devi contestare alla Apple

  • http://sonovivoenonhopiupaura.blogspot.c Gabriele Niola

    Per questo il software prima cerca cosa può caricare prima del javascript, in modo da non far partire cose che sarebbero inutili senza di esso.

    La polemica sull’uso di neologismi tecnici presi dall’inglese è ricorrente. E ancora ripeto che non c’è nulla di male nello scrivere “embeddare” in una notizia di tecnologia, invece che scrivere “incorporare nel codice”. Embed è una parola tecnica e i tecnicismi si usano. Altro discorso si dovrebbe fare quando il termine è esportato nella lingua comune e usato in altri contesti, in quel momento entra nell’uso si carica di un significato autonomo svincolato dalla tecnologia e allora può essere criticato il suo uso. Ma finchè si parla di tecnologia…

  • PolDo

    usare noscript con firefox è sufficente……forse non per altri browser che non hanno addons così potenti…

  • http://www.thinkcreative.it Matteo

    Sarebbe bello poter limitare il javascript, ma a volte non è possibile… Si cerca quindi in tutti i modi di ridurre il caricamento usando un solo file e snellendo il codice, ma anche qui si è molto ristretti a causa dello scopo finale…

    Troppo dura la vita dei programmatori, sempre detto :P

  • http://marcellovicidomimi.photoshop.com Marcello

    Anche a me il problema in sé non sembra una particolare novità. La novità mi sembra piuttosto la soluzione!

  • Ratamusa

    Non è l’uso del Javascript in sè ma quanto viene usato….

  • giuse

    tutti parlano del problema come cosa ovvia, ma c’è qualche soluzione per abbreviare i tempi di caricamento delle pagine: da outlook a mozilla o explorer qualche volta ci vogliono anche otto secondi, malgrado l’adsl a 6.5 M ed un dell dimension 5000! chi mi da una dritta per accorciare le attese?

  • Ratamusa

    adblock per terminare la pubblicità se hai firefox come browser…..
    Se a bordo hai Vista, mettiti il cuore in pace e aspetta….
    Puoi provare ad aggiungere ram se ne hai meno di 4GB….