J'utilise CSS pour placer beaucoup de mes images (comme arrière-plans de <div>
) et je constate souvent qu'elles se chargent très lentement de cette façon. Ils semblent être la dernière chose à charger. Même de petites images d'icône mettent un certain temps à apparaître de cette façon. Existe-t-il un moyen d'indiquer au navigateur une priorité pour les images? Ou demandez-lui de télécharger les images du fichier CSS plus tôt et de les afficher plus tôt?
CSS est pour le style, pas le contenu. Les navigateurs (à juste titre) essaient d'afficher le contenu avant d'ajouter le style, ce qui explique pourquoi les images des feuilles de style sont généralement téléchargées en dernier. Si les images sont importantes pour votre conten, ajoutez-les ensuite via les balises HTML <IMG>
standard.
Utilisez des URI absolus de votre feuille de style et ajoutez les images des balises IMG à un <div>
caché sur la page (cela suppose que vous utilisez les mêmes images sur chaque page; idéalement dans le pied de page afin ils sont tous chargés et mis en cache sur un appel de page donné).
Les images de la page sont prioritaires et, une fois mises en cache, elles sont immédiatement rendues lors des demandes de page suivantes.
Pour les navigateurs prenant en charge le type d’URI de données (voir http://en.wikipedia.org/wiki/Data_Uri pour plus d’informations), incluez l’image dans le fichier CSS lui-même.
Cela a cependant quelques inconvénients:
Utilisez sprites CSS , en particulier pour les icônes.
Faites vos images aussi petites que possible. Vous pouvez utiliser smush.it pour supprimer les octets inutiles.
Pour le moment, il n’existe aucun moyen de spécifier les fichiers à télécharger en premier. Pour votre information, les images spécifiées dans les fichiers CSS comme images d’arrière-plan se téléchargent dernier probablement parce que le navigateur les voit non-contenu et donc moins prioritaire, évitez de les utiliser pour les images importantes que vous souhaitez charger rapidement.