Memorizzazione nella cache dell'immagine durante il rendering delle stesse immagini su pagine diverse [chiuso]

0

Mi è stato detto di pensare alla memorizzazione nella cache delle immagini che verranno visualizzate sulla pagina. Le immagini verranno ripetute su tutto il sito Web su pagine diverse e mi viene detto di capire il modo migliore per memorizzare queste immagini. Potrebbero esserci poche decine di immagini su una singola pagina.

Ecco alcune domande:

  • Il caching del browser funzionerà per visualizzare le stesse immagini su pagine web diverse?
  • Dovrei piuttosto archiviare le immagini in forma stringificata in una memoria, invece, usando gli array JavaScript?
  • memorizzarli sul disco rigido utilizzando "localStorage"?
  • Quale sarebbe l'opzione più semplice ma migliore per questo?
  • Ci sono altre alternative?
  • Come forzare la cache?

Qualsiasi altra informazione sarebbe molto apprezzata ...

    
posta HelpNeeder 30.05.2014 - 02:56
fonte

2 risposte

5

Le immagini sono memorizzate nella cache dal browser sia in una cache in memoria (che dura non più della durata di una sessione del browser) sia in una cache basata su disco (che può durare attraverso le sessioni in base alle impostazioni della cache del disco - dimensioni e durata) a condizione che il server non impedisca esplicitamente la memorizzazione delle immagini sulla cache in base alle impostazioni nelle intestazioni http.

Una determinata immagine viene memorizzata nella cache una volta, indipendentemente dalla pagina in cui viene utilizzata e, purché l'URL sia uguale ovunque, la stessa copia cache verrà utilizzata su tutte le pagine che specificano quell'immagine finché l'immagine non invecchia. la cache o la cache viene cancellata o il browser decide che la copia cache potrebbe essere inattiva.

Ci dovrebbero essere pochi motivi per reinventare il caching delle immagini facendo il tuo.

Se nella tua pagina ci sono molte piccole immagini, un miglioramento della velocità comune consiste nel combinare più immagini in uno sprite e visualizzarle ognuna come una porzione diversa dello sprite.

    
risposta data 30.05.2014 - 03:40
fonte
1

La maggior parte dei browser moderni è abbastanza intelligente da memorizzare le immagini nella cache, almeno in una sessione del browser. Ecco alcuni modi per ottimizzare le prestazioni delle immagini ripetitive nel tuo sito web.

  • Puoi dire al browser di memorizzare le immagini per un lungo periodo di tempo fornendo le informazioni di intestazione HTTP appropriate, in particolare Expires e Cache-control: max-age . Gli sviluppatori di Google hanno una buona documentazione sulle migliori pratiche per lo stesso.
  • Puoi utilizzare gli URI di dati anziché i file di immagine reali. Ciò riduce il sovraccarico della rete di richiesta HTTP in eccesso poiché i dati dell'immagine fanno effettivamente parte della pagina HTML. Puoi utilizzare localStorage per salvare questi URI di dati nelle sessioni del browser.
  • Se hai molte piccole immagini, dovresti prendere in considerazione l'utilizzo di immagini con sprite CSS .
risposta data 30.05.2014 - 10:06
fonte

Leggi altre domande sui tag