Dopo aver visto tutti gli avvisi sull’uso di Cloudflare e sui siti con molte immagini, ho deciso di affrontare questa sfida per un piccolo progetto personale su cui sto lavorando. Sebbene abbia avuto per lo più successo con Cloudflare, sto avendo difficoltà a capire perché le immagini del mio tema non si caricano prima del completamento dell’esecuzione di JavaScript (sembra non essere un problema legato alla CDN).
C’è un modo per far caricare le immagini prima (contemporaneamente a JS/CSS, o semplicemente durante l’esecuzione di JS) o è un divieto assoluto? Potrebbe trattarsi di una necessaria prioritizzazione?
Di seguito i risultati di webpagetest.org; il mio focus è il grande divario tra i ~2,3 secondi in cui termina il caricamento dell’ultimo script JS e i ~3,4 secondi in cui le immagini iniziano il loro download.
Configurazione
Link: https://investorcommunity.org
Tema: Graceful
Server: Droplet DO (nessuna cache aggiuntiva o S3)
CDN: Cloudflare (versione gratuita, con “Rocket Loader” disabilitato per evitare interferenze con JS). Da notare che disabilitare Cloudflare non sembra influenzare questo specifico problema.
Quel divario corrisponde al periodo di esecuzione del JS, durante il quale completiamo il download dell’applicazione Discourse EmberJS e la avviamo. Abbiamo diverse persone impegnate nel modernizzare l’applicazione EmberJS e inizieremo a raccogliere i benefici di questo lavoro quest’anno.
Tuttavia, trattandosi di un’applicazione JavaScript, ci sarà sempre una certa esecuzione di JS in corso, quindi non mi preoccuperei troppo di questo se hai già deciso di utilizzare Discourse per la tua community.
C’è un modo per avviare il trasferimento delle immagini del tema in parallelo all’inizializzazione di quello script, in modo che le immagini vengano precaricate e visualizzate non appena il JS termina? O lo script JS è un prerequisito fondamentale per sapere quali immagini estrarre fin dall’inizio?
Non vedo l’ora di sentire parlare di EmberJS: siamo impazienti di vedere i grandi miglioramenti che continuate a rilasciare!