Accueil > Sommaire Mozilla > fonctions > Préchargement des liens (Prefetching Links) dans Mozilla

Préchargement des liens (Prefetching Links) dans Mozilla

Sommaire :
Qu'est-ce que c'est ?
Comment le navigateur choisit-il les documents à précharger ?
Peut-on conseiller des préchargements dans les liens hypertextes (ancres, balises <a>) ?
Naviguer avec le préchargement activé
Enclencher ou neutraliser le préchargement des liens
Plus d'informations

Vous pouvez trouver cette fonction destinée à accélérer la navigation dans Mozilla 1.2.1 et dans les navigateurs basés sur le tronc comme Pheonix 0.5, ainsi que sur ceux basés sur Mozilla 1.0.2 et suivants comme Netscape depuis la version 7.01. Chimera 0.6 (en mars 2003) est basé sur Mozilla 1.0.1 et donc n'intègrent pas le préchargement des liens.

Nommé Link prefetching, ce n'est pas une invention de Mozilla. Une telle fonction est depuis longtemps proposée par l'utilitaire Naviscope, par exemple. Les développeurs de Mozilla ont systématisé le concept pour donner la main aux auteurs de pages Web en exploitant les potentialités de la normes HTML 4.01 du W3C.

Mais qu'est-ce que c'est ?

Le préchargement des liens est une fonction conçue pour qu'un navigateur Web rentabilise ses périodes d'inactivité pour télécharger ou précharger les documents que son utilisateur est susceptible de vouloir visiter dans un proche avenir.

Le navigateur trouve dans le code même de la page Web visitée, quels documents il doit précharger silencieusement et stocker dans son cache, une fois qu'il a fini de charger la page en cours. Ainsi pendant la lecture de la page par l'internaute, le logiciel travaille intelligemment à anticiper sa navigation future. Quand il décidera de visiter un des documents préchargés, le navigateur ira le piocher rapidement dans son cache, sur le disque dure de l'utilisateur qui n'aura ainsi pas à attendre le chargement de la page depuis le site Web distant.

Comment le navigateur choisit-il les documents à précharger ?

C'est le créateur de la page qui indique les adresses des éléments à précharger en utilisant la balise d'en-tête <link> ou l'en-tête HTTP Link: . Le navigateur précharge contacte les adresses indiquées dans l'attribut href des balises <link> dont le type de relation est « next » ou « prefetch » (dans l'attribut rel).

<link rel="prefetch" href="../img/moz.png">

Le même conseil de préchargement en utilisant une en-tête HTTP Link: :

Link: <../img/moz.png>; rel=prefetch 

Le lien peut aussi être indiqué dans l'en-tête du document grâce à une balise HTML <meta> :

<meta HTTP-EQUIV="Link" CONTENT="&lt;../img/moz.png&gt;; rel=prefetch">

Le format pour le l'en-tête Link: est décrit dans RFC 2068 section 19.6.2.4 (page 159).

Le navigateur relève tous ces conseils de préchargement et les ajoute chaque requête à une file d'attente pour être préchargé lorsque le navigateur est inactif. Il peut y avoir plusieurs conseils par page : les auteurs peuvent avoir plusieurs documents à conseiller. Par exemple, le prochain document peut contenir plusieurs grandes images.

Voir les exemples suivants :

<link rel="prefetch alternate stylesheet" title="Designed for Mozilla" href="mozspecific.css">
<link rel="next" href="2.html">

Pour d'autres explications sur les balises <link>, consultez la page sur la barre de liaison pour Mozilla.

Peut-on conseiller des préchargements dans les liens hypertextes (ancres, balises <a>) ?

Non, pas actuellement : uniquement les balises <link> avec comme type de relation next ou prefetch sont préchargés.

Les ordres de l'utilisateur interrompent le préchargement. Qu'il clique sur un lien ou qu'il lance n'importe quel genre de téléchargement de page, le préchargement des liens s'arrêtera et tous les conseils seront rejetés. Si un document en préchargement est partiellement téléchargé, alors le document partiel sera toujours stocké dans le cache.

Lorsque Mozilla exécute d'autres téléchargements en tâche de fond, le préchargement des liens est alors retardé jusqu'à leur achèvement. Par exemple, si vous chargez un groupe de signets (qui ouvre plusieurs onglets), aucune demande de préchargement lancée par une des pages ne commencera avant que tous les onglets ne soient chargés entièrement. Ainsi, le préchargement des liens n'entrera pas en concurrence pour la bande passante avec le chargement des pages demandées par l'utilisateur de Mozilla.

Par contre, il n'en sera pas de même pour une application qui utilise le réseau en même temps que Mozilla. Le préchargement des liens pourra rentrer en concurrence avec cette application pour l'utilisation de la bande passante.

Enclencher ou neutraliser le préchargement des liens

Si vous avez la version en développement de Mozilla (1.3b pas disponible en français), vous pouvez activer ou désactiver cette fonction dans les préférences (Preferences menu Edit).  Rendez-vous dans la catégorie (liste de gauche) Advanced et la sous-catégorie Cache, pour cocher dans le volet de droite la case « Prefetch web pages when idle, so that links in web pages designed for prefetching can load faster » afin d'enclencher la fonction de préchargement.

Si votre navigateur dispose de la fonction sans avoir l'option dans l'interface-utilisateur Préférences, il y a une préférence cachée que vous pouvez placer pour neutraliser le préchargement de liens. Ajoutez cette ligne à votre fichier prefs.js situé dans le répertoire de votre profil-utilisateur de Mozilla :

user_pref("network.prefetch-next", false);

Plus d'informations

Pour des précisions ou des renseignements supplémentaires, notamment sur les liens non préchargés (https://, FTP, requêtes), l'en-tête HTTP Refer:, la reconnaissance du préchargement côté serveur, consultez la page, en anglais, de Darin Fisher (mise à jour le 3 mars 2003) « Link Prefetching FAQ » dont je me suis largement inspiré ici.

Doron Rosenberg a publié, le 28 février 2003, en anglais, sur Devedge (site de Netscape Communications pour les développeurs), une présentation de cette fonction d'optimisation : Prefetching Content for Increased Performance [liens morts !].


Valid HTML 4.01!Seulement valide en HTML 4.01 Transitional à cause de l'attribut target


BlogZiNet | Mozinet – accueil | Changer de navigateur Internet | Lexique | Plan du site