Sto usando uno script JavaScript che mi dice se nella cache del browser dell'utente sono memorizzati nella cache del browser dell'utente URL specifici dell'immagine. Lo sto utilizzando perché costruisco un array di immagini non memorizzate nella cache che verranno caricate separatamente, dopo aver eseguito un processo più importante. Questo script è stato scritto appositamente per Google Chrome, quindi non ho bisogno di una soluzione cross-browser.Come sapere se l'immagine viene estratta dalla cache Web dell'utente o come ottenere il tempo di caricamento esatto?
La mia funzione corrente controlla il tempo impiegato per caricare l'immagine e se è inferiore a qualche millisecondo (attualmente 25 ms), presumo che sia estratto dalla cache.
La differenza tra le immagini memorizzate nella cache e quelle non memorizzate nella cache è facile da individuare manualmente controllando il pannello Risorse nello strumento di sviluppo di Chrome. Quando passa il tempo di caricamento, Chrome indica se il file è stato estratto dalla cache o stampando un suggerimento simile al seguente: xx ms Latency, xx ms Download (from cache)
.
Ho notato che in alcune occasioni, il tempo di latenza è piuttosto lungo (ad esempio 64ms per solo 2ms di tempo di download) e rende inutile la mia funzione di rilevamento poiché il tempo di caricamento totale supera quindi la mia soglia. Aumentare la soglia non è possibile in quanto le immagini piccole e non memorizzate nella cache potrebbero anche essere caricate nello stesso intervallo di tempo.
Ora che hai avuto il mio problema, qui va la mia domanda:
-E 'possibile controllare in modo accurato al 100% (per esempio come il pannello di risorse di Chrome) il file viene dalla cache? (Credo che se quel pannello lo fa, ci deve essere un modo, ma non ho potuto trovare su Internet)
O
-È C'è un modo per separare i due ritardi (ad esempio latenza vs. Download) per poter controllare solo il tempo di download vero? Il calcolo del tempo trascorso tra l'avvio del caricamento dell'immagine e l'evento onload
restituisce il tempo totale.
Vi ringrazio per aver letto la mia domanda e anche se non avete una soluzione precisa, pensieri, idee, sono i benvenuti!
(PS: io non sono un madrelingua inglese quindi per favore non la colpa a me per aver fatto errori!)
Gaël
Per favore potresti condividere JavaScript? – Eldar