Supposons que je souhaite créer un lien vers un répertoire parent (http://example.com/library/
) à partir d'un sous-répertoire (http://example.com/library/html/basics/
).
Le lien vers le répertoire parent peut être:
href="../../"
href="/library/"
href="http://example.com/library/"
Existe-t-il une différence de vitesse en fonction de la manière dont j'écris le lien? Je ne pose pas de question sur la vitesse de chargement du site Web, mais plutôt sur la différence perceptible lors de la navigation dans le répertoire.
Effet pour le navigateur:
Bien que cela ressemble à un peu de travail pour le navigateur Web, mais techniquement, cela ne fait pas une grande différence. Les navigateurs sont trop rapides pour gérer cette structure d'URL relative et faire un appel au serveur d'applications.
Effet pour le serveur d'applications:
Aucun, car il doit renvoyer le fichier demandé (le lien relatif/absolu est finalement mappé sur un chemin Web).
Effet sur la taille de la page:
Oui, il y aurait une certaine réduction de taille (encore une fois pas quelque chose qui ferait une énorme différence pour la performance de votre page qui pourrait être obtenue par quelque chose comme le codage de contenu gzip ou une ressource minifiant)
Donc, je pense que techniquement les les URL absolues/relatives ne font pas une grande différence sur la vitesse de la page/aucune matrice pondérable.
Oui, il fait faire une énorme différence dans la gestion de plusieurs environnements comme dev, pp, prodpp, etc.
Exemple: sur votre développement local, dev.example.com pourrait être en pré-production: pp.example.com. .
Donc, dans ces scénarios, il serait relativement facile de gérer le code avec des URL relatives (bien que cela puisse également être géré par les paramètres d'environnement)
Les chemins relatifs HTML/CSS seront toujours plus rapides pour la vitesse du serveur, car le serveur a moins de code à envoyer. Les chemins relatifs sous forme HTML ou CSS sont traduits par le navigateur de l'utilisateur final et non par le serveur.
Donc, techniquement, il est plus rapide pour le serveur et plus lent pour l'utilisateur final, mais l'utilisateur final ne remarquera jamais la différence, car le traitement requis est inférieur à nanosecondes. Par conséquent, les utilisateurs finaux sont beaucoup plus susceptibles de constater la différence. relatif parce que le serveur va pouvoir mieux les servir.