2013-12-12 7 views
7

Mi stavo chiedendo se uno qualsiasi dei browser moderni memorizza effettivamente le immagini incorporate - stringhe base64 o no?I browser possono anche memorizzare nella cache le immagini di base64 incorporate?

Anche questa è una possibilità nel prossimo futuro? basato sui documenti ufficiali del W3C o dei principali browser.

+1

Come ho capito, se la stringa base64 fa parte del documento HTML (inline), entrambi dovranno essere scaricati e analizzati come immagine ogni volta che il documento viene scaricato. Se si tratta di un'immagine di sfondo in un file CSS esterno, può essere memorizzata nella cache con il file CSS, ma dovrà comunque essere analizzata ad ogni richiesta. Ho anche letto che la codifica base64 aggiunge circa il 30% di overhead in cima ai byte dell'immagine, ma questo può essere in gran parte annullato da gzipping. – pwdst

+0

@pwdst Grazie, stavo leggendo e anch'io sono nella stessa pagina. Se pubblichi il tuo commento come risposta, sarei felice di revocarlo. – Mahdi

+0

Ho aggiunto questo come risposta come richiesto. – pwdst

risposta

4

Non credo, perché manca uno Resource Identifier come chiave per l'immagine memorizzata nella cache. Con le immagini incorporate hai solo i dati stessi.

Inoltre, una potenziale richiesta condizionale per le immagini in linea deve essere al livello del documento HTML che la contiene. L'immagine in linea è solo dati senza richiesta aggiuntiva. Ma HTTP non supporta qualcosa come le richieste condizionali per parti dei dati.

+0

C'è un modo per dirlo anche lì? come attributo forse? – Mahdi

+2

Vuoi dire aggiungere un identificatore di risorsa? Non c'è. A quanto ho capito, i dati codificati in base64 vengono trattati come parte della risorsa in cui è incorporato (ad esempio il file HTML o CSS). Ovviamente se tale risorsa viene memorizzata nella cache, i dati al suo interno verranno memorizzati nella cache come parte di esso. –

+1

@OllyHodgson Grazie per la spiegazione, questo ha senso. – Mahdi

3

Come ho capito, se la stringa base64 fa parte del documento HTML (inline), entrambi dovranno essere scaricati e analizzati come immagine ogni volta che viene scaricato il documento - non c'è modo di memorizzare nella cache frammenti di documenti. Se si tratta di un'immagine di sfondo in un file CSS esterno, può essere memorizzata nella cache con il file CSS, ma dovrà comunque essere analizzata ad ogni richiesta. Ho anche letto che la codifica base64 aggiunge circa il 30% di overhead in cima ai byte dell'immagine, ma questo può essere in gran parte annullato da gzipping.

Problemi correlati