Come posso incoraggiare il browser a scaricare più velocemente le immagini dal file CSS?


13

Uso i CSS per posizionare molte delle mie immagini (come sfondi per <div>) e spesso trovo che si caricino molto lentamente in questo modo. Sembrano essere l'ultima cosa da caricare. Anche le piccole icone delle icone richiedono un po 'di tempo per essere visualizzate in questo modo. C'è un modo per dire al browser una priorità per le immagini? O farlo scaricare le immagini nel file CSS prima e renderle prima?


La risposta degli sprite CSS alla tua altra domanda probabilmente ti aiuterà a risolvere anche questa.
DisgruntledGoat

Risposte:


10

CSS è per lo stile, non per il contenuto. I browser (giustamente) cercano di visualizzare il contenuto prima di aggiungere uno stile, quindi il motivo per cui le immagini nei fogli di stile vengono generalmente scaricate per ultime. Se le immagini sono importanti per i tuoi contenuti, aggiungile tramite <IMG>tag HTML standard .


2
Ottimo consiglio, in particolare l'ultima frase. Immagine per la decorazione: CSS; Immagini per contenuti: HTML.
DisgruntledGoat

1
La descrizione di Daniel delle immagini a cui si riferisce ("sfondi", "icone") le fa sembrare molto simili alla decorazione, al contrario del contenuto. Penso che abbiano ragione a essere nel CSS.
Bobby Jack,

5

Usa gli URI assoluti dal tuo foglio di stile e aggiungi le immagini dai tag IMG a un nascosto <div>sulla pagina (questo presuppone che tu stia usando le stesse immagini su ogni pagina; idealmente nel piè di pagina in modo che siano tutte caricate e memorizzate nella cache in una determinata chiamata di pagina ).

Le immagini sulla pagina hanno la priorità e, una volta memorizzate nella cache, verranno visualizzate immediatamente nelle successive richieste di pagina.


2

Per i browser che supportano il tipo di URI dei dati (consultare http://en.wikipedia.org/wiki/Data_Uri per informazioni) per includere l'immagine nel CSS stesso.

Ciò presenta alcuni svantaggi:

  • I dati vengono ricaricati quando il CSS è, piuttosto che essere memorizzati separatamente nella cache, anche se a meno che il CSS non cambi regolarmente questo non è un grosso problema.
  • La mancanza di ereditarietà di CSS e tali mezzi potrebbero esserci momenti (spreco di larghezza di banda) in cui è necessario includere la stessa grafica più volte o modificare le classi utilizzate nel documento.
  • Le immagini sono codificate in base64 quando utilizzate in questo modo, il che significa che richiedono più larghezza di banda (sebbene il problema della larghezza di banda sia molto meno significativo se si inviano i dati compressi).
  • Dovrai fornire stili alternativi per i browser che non supportano gli URI dei dati, alcuni dei quali sono tutt'altro che rari (IE6 e IE7 per esempio).

1

A partire da ora non c'è modo di specificare quali file scaricare prima. Cordiali saluti, le immagini specificate nei file CSS come download di immagini di sfondo durano probabilmente perché il browser le vede senza contenuto e quindi una priorità inferiore, quindi evita di usarle per immagini importanti che desideri caricare rapidamente.



1

Rendi le tue immagini più piccole possibili. Puoi usare smush.it per rimuovere byte non necessari.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.