125 votes

Les images CSS inutilisées sont-elles téléchargées ?

Les images CSS inutilisées sont-elles téléchargées par le navigateur ou ignorées ?

Par exemple, dans les règles CSS qui ne correspondent à aucun élément.

.nothingHasThisClass{background:url(hugefile.png);}

Ou bien cela dépend-il du navigateur ?

89voto

Nick Craver Points 313913

Cela dépend du navigateur, puisque c'est la façon dont ils décident d'implémenter la spécification, mais dans un test rapide ici :

  • Chrome : Non.
  • FireFox : Non.
  • Safari : Non.
  • IE8 : Non.
  • IE7 : Non.
  • IE6 : Inconnu (Quelqu'un peut-il tester et commenter ?)

13voto

Tatu Ulmanen Points 52098

Non, ils ne sont pas téléchargés, du moins pas dans Firefox, IE8 et Chrome.

Un moyen facile de tester cela :

<!DOCTYPE html>
<html>
    <head>
       <style type="text/css">
        .nonexistent {
            background: url('index.php?foo');
        }
        </style>
    </head>
    <body>
<?php if(isset($_GET['foo'])) {
    file_put_contents('test.txt', $_SERVER['HTTP_USER_AGENT']);
} ?>
    </body>
</html>

Si test.txt est rempli avec l'agent utilisateur du navigateur, puis l'image est téléchargée. Ce n'était pas le cas dans tous mes tests.

9voto

mauris Points 19666

Un test rapide l'a prouvé.

<!DOCTYPE html>
<html>
<head>
<title></title>

<style type="text/css"><!--

.hasnothing{background-image:url(http://25.media.tumblr.com/tumblr_ky7aakqvH01qatluqo1_400.jpg);}
.hassomething{background-image:url(http://27.media.tumblr.com/tumblr_kxytwr7YzH1qajh4xo1_500.png);}

--></style>

</head><body>

<div class="hassomething"></div>

</body></html>

La 2ème image, tumblr_kxytwr7YzH1qajh4xo1_500.png a été téléchargé mais pas l'autre. Cela s'est avéré vrai dans Chrome (Developer tools) et Firefox (Firebug).

8voto

David Thomas Points 111253

Firefox et Chrome (Ubuntu 9.10) ne téléchargent pas les images pour les classes/ides qui ne sont pas appliquées dans le DOM.

Il peut s'agir à la fois d'une plateforme y Mais cela dépend du navigateur.

2voto

N 1.1 Points 7687

Presque tous les navigateurs font du "lazy-loading". Si une image n'est pas nécessaire, elle n'est pas téléchargée. Utilisez firebug (module complémentaire dans Firefox/Chrome) pour voir le temps de chargement des ressources.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X