36 votes

dns prefetch / pre-resolve hostname - quelle efficacité ?

Je me suis renseigné sur la façon dont cela fonctionne, mais j'ai du mal à m'y retrouver.

D'après ce que je peux dire, si je règle <link rel="dns-prefetch" href="stackoverflow.com//ajax.googleapis.com" /> dans l'en-tête de ma page web, je debe voir un traitement plus rapide de la demande si je référence des actifs sur ce domaine. [réf]

Il y a deux problèmes qui me préoccupent actuellement :

1) Est-ce que cela n'aide que pour les demandes de pages futures ?

Ce que je veux dire, c'est que si j'utilise le CDN de Google pour obtenir jQuery sur chaque page de mon site ajoutera le <link /> ci-dessus une différence ? Ou cela ne sera-t-il utile que si, par exemple, je ne fais pas référence au CDN sur ma page d'accueil mais sur toutes les autres pages ? Dans cette deuxième option, l'utilisateur se rendrait sur la page d'accueil, résoudrait et mettrait en cache l'hôte DNS prêt pour le téléchargement sur mes pages de contenu.

2) Comment puis-je tester l'efficacité de ces mesures ?

Je suppose que si je connaissais la réponse à cette question, je comprendrais mieux le problème 1. J'essaie d'utiliser Firebug et les outils de développement de Chrome et je regarde les panneaux Net et Ressources, mais je ne vois aucune différence significative. La seule tendance que je peux observer est que ma requête prend plus de temps lorsque j'utilise l'outil de gestion des ressources. <link /> ! !

J'ai lu la documentation sur MDN y le Chromium Blog (tous deux vieux !) mais je ne comprends toujours pas.

Toute aide sera appréciée - merci !

MISE À JOUR - 22/01/2013

Je viens de lire un peu plus sur ce sujet et j'ai pensé que je devais inclure les liens pour les personnes qui se posent la même question. csswizardry a écrit un excellent article sur la performance dans lequel il fait référence à cette question et des liens vers plus de recherches sur perfplanet . Si quelqu'un a plus d'informations ou d'idées à ce sujet, veuillez ajouter une réponse !

Voici un lien vers une autre question plus récente de la SO - J'espère que cela aidera les gens à trouver les réponses qu'ils recherchent.

23voto

Derek Points 1764

Dans le premier cas, le préchargement DNS ne sera d'aucune utilité puisque vous chargez la même ressource sur chaque page. La ressource doit être mise en cache lors des requêtes suivantes, donc la récupération préalable de l'enregistrement DNS n'aura aucun effet.

Dans le second cas, il suffit de retirer et d'ajouter le fichier link n'est pas suffisant pour tester l'effet de la préextraction. Même sans l'élément lien, le navigateur analyse les hrefs pour déterminer les domaines à préextraire - la balise lien est censée lui indiquer de préextraire un domaine en plus de ceux que le navigateur trouverait - ceci est utile dans le cas où vous savez qu'un lien vers un domaine est finalement redirigé vers un autre.

Une façon de voir l'effet de la balise prefetch serait de configurer quelques sites. www.example.com/index.html contiendrait un lien vers www.anotherexample.com qui, à son tour, redirigerait vers www.athirdsite.com. Si vous testez cette configuration avec et sans balise de lien pointant vers www.athirdsite.com, vous constaterez qu'elle est plus rapide avec la balise de lien. Cet effet est beaucoup plus probable si le serveur de noms utilisé présente une latence élevée.

En conclusion, je laisserais simplement le navigateur faire son travail, à moins que vous n'ayez une raison très particulière de lui demander de faire autre chose en plus.

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