Le specifiche HTML raccomanda di specificare height
e width
per <img>
come un suggerimento per un agente visiva, che miscele il markup e le regole di stile per costruire una rappresentazione visiva di un documento HTML. Nel modello box CSS, le dimensioni dell'immagine sono intrinseche, ovvero sono implicite nel blob binario. Ciò significa che un browser deve attendere una risposta HTTP prima di decidere quanto è grande l'immagine e quindi come disporre e posizionare i fratelli e i genitori. La specifica delle dimensioni nelle pagine HTML consente al browser di eseguire rapidamente il rendering della pagina, in quanto può assegnare larghezza e altezza prima di scaricare l'immagine dal server.
A questo punto dovrebbe essere chiaro che non è possibile accedere alla larghezza dell'immagine sul client prima di scaricarlo. Quando lo sa, il browser lo sa già e dichiari che è troppo tardi per le tue esigenze.
Quindi l'unica opzione per suggerire il browser è misurare l'immagine sul lato server. Può essere fatto su richiesta (ma è uno spreco di risorse), o può essere fatto una volta quando l'immagine viene prima caricata (e poi recuperata da un database), o eventualmente può essere assunta come costante, ad esempio se si tratta di un'immagine del profilo, il servizio verrà sempre ingrandito o ridotto per essere esattamente uguale a W x H
pixel (potrebbe trattarsi di un parametro di configurazione).
Grazie, temevo che questo fosse il problema. Quindi, rimane solo un'opzione per precaricare l'immagine nella cache ma renderla invisibile e quindi mostrarla? Penso che darò dei parametri quando caricherò l'immagine, che mi sembra migliore del precaricamento delle immagini. – adnan
Se lo rendi invisibile mentre non è caricato, non ha senso impostare le dimensioni, perché il browser deve inoltrare comunque. L'unica opzione è la misurazione sul server, tuttavia si noti che questo non è un requisito e non è una pratica comune. Se davvero lo vuoi, va bene, altrimenti salta lo – Raffaele
Grazie, vorrebbe qualcosa come: http://stackoverflow.com/questions/1944280/determine-original-size-of-image-cross-browser.Ma ora aggiungo automaticamente i parametri al file caricato quando viene caricato – adnan