2009-06-05 7 views

Répondre

7

Le premier exemple référence une ressource externe en spécifiant son URI. Cela entraînera donc une demande supplémentaire à cette ressource pour recevoir les données.

Le deuxième exemple référence également une ressource mais les données de cette ressource sont directement incorporées dans l'URI (voir data URI scheme). Donc, aucune demande supplémentaire n'est nécessaire.

Les deux méthodes ont des avantages et des inconvénients:

     external embedded 
separate request (-)  ✓   ✗ 
cachable (+)    ✓   ✗ 
referencable (+)   ✓   ✗ 
compression (+)   ✓   ✗ 
  • données sur les ressources externes
    L'avantage d'utiliser une ressource externe est que ces ressources peuvent être mises en cache et utilisées dans différents documents sans demandes pour chaque apparence de ces ressources.
    Un inconvénient est qu'il prend cette première demande supplémentaire.

  • données de ressources intégrées
    Un avantage d'intégrer les données relatives aux ressources directement dans le document est d'enregistrer une demande supplémentaire.
    Mais un inconvénient est que ces ressources ne peuvent pas être mises en cache ou référencées sur plusieurs apparences dans un document ou des documents différents. De plus, il ne peut pas être compressé en utilisant deflate ou gzip. En fait, l'encodage Base64 va gonfler la taille du facteur 4/3.

Voir aussi la première règle de Make Fewer HTTP Requestsles meilleures pratiques pour accélérer votre site Web.

+0

Cela a du sens ... dans le cas où le src est un chemin vers un fichier image, le serveur web va-t-il normalement encoder (uuencode?) Le fichier image et l'envoyer au navigateur? –

+0

Le serveur peut utiliser des encodages tels que gzip ou deflate.Mais sinon, les données ne sont pas codées. Voir par exemple http://web-sniffer.net/?url=http%3A%2F%2Fstackoverflow.com%2Fcontent%2Fimg%2Fso%2Flogo.png Les caractères étranges là sont le résultat de l'interprétation des données binaires de cette image avec ISO 8859-1. Mais les données sont inchangées car vous pouvez voir la signature PNG dans la première ligne de données. – Gumbo

4

La liaison à une image séparée nécessite une seconde requête pour obtenir l'image, mais permet de la mettre en cache et de la réutiliser sur plusieurs pages sans avoir à envoyer à nouveau les données.

plongement dont il a besoin en ligne que les données soient envoyées à chaque requête de page qui inclut l'image (et plusieurs fois si l'image est utilisée plus d'une fois dans une page)

3

Dans le cas de <img src="/path/to/image.png" />, le serveur gagné 't encoder l'image. Le navigateur le demandera sur une demande séparée , et le serveur videra juste un en-tête court, puis les données du fichier sur le fil. Dans un serveur HTTP bien écrit, il s'agit d'une opération extrêmement rapide, car la quantité de traitement requise est minime. Le navigateur peut également mettre en cache l'image afin qu'elle n'ait pas à la récupérer plus tard (comme d'autres l'ont dit).

L'incrustation en ligne augmente à la fois le poids de la page et rend impossible la mise en cache de l'image séparément.

Questions connexes