Préchargez vos pages avec html5

Préchargez vos pages avec html5

Publié le par dans Développement, HTML 5 | 3 commentaires »

Longtemps réservé aux images, fichiers javascript et autres css, le préchargement, ou "prefetching" en anglais, est maintenant disponible pour des pages complètes. Cette avancée, on la doit à html5 qui, grâce à une simple balise meta, ordonne au navigateur de charger une page à l'avance. Là où c'est formidable, c'est que ce dernier ne se contente pas de télécharger les éléments de la page, mais en réalise un pré-rendu. Du coup, lorsqu'un visiteur clique sur un lien vers cette page, l'affichage est instantané.

Si le prefetching offre une expérience utilisateur incomparable, il est important de choisir avec précaution les pages que vous allez pré-charger. Il convient d'en limiter le nombre (à 2-3 selon moi) pour ne pas surcharger votre serveur avec des requêtes http inutiles. J'ai énormément réfléchi à la meilleure façon d'utiliser cet outil, et l'ai finalement implémenté sur Scooter System dans 3 cas de figures :

  • sur la page d'accueil du site, vers la dernière actualité publiée ;
  • sur les principales rubriques du site, vers les pages de destination les plus populaires (liste récupérée dans Google Analytics) ;
  • sur toutes les pages lorsqu'un visiteur arrive sur le site (détection du referer en php), vers la page d'accueil.
Tous les navigateurs ne gérant pas le préchargement html5 de la même façon, j'ai également développé une petite fonction php qui génère les balises meta selon le User agent. Pour le moment, seuls Mozilla Firefox et Google Chrome (v13) sont de la partie avec comme toujours un fonctionnement légèrement différent. Firefox respecte à la lettre les recommandations html5 et utilise une balise "prefetch", tandis que Chrome possède sa propre syntaxe baptisée "prerender". Voici ce que donne ma fonction, à adapter selon votre CMS et vos besoins :

function prefetch($l){
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Chrome/')){
return "\n".'<link rel="prerender" href="'.$l.'">';
} elseif(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Firefox/')){
return "\n".'<link rel="prefetch" href="'.$l.'">';
}
}

Il suffit ensuite d'appeler votre fonction prefetch() dans le header de votre site ou blog autant de fois qu'il y a de pages à précharger, et elle renverra le code qui va bien. Notez qu'Internet Explorer, Opera et Safari ne gèrent pour le moment pas le pré-chargement, mais que cela viendra prochainement. Il vous suffira alors de modifer la fonction pour prendre en compte les évolutions. Voilà donc pour cette introduction à une nouveauté html5 pleine de promesses ! N'hésitez pas à publier un petit commentaire ci-dessous si cet article vous a intéressé !



3 commentaires sur “Préchargez vos pages avec html5”

  1. 1

    Top comme info ! Bon c’est décidé, la prochaine version de touchmobile ce sera en html5 :)

  2. 2

    Merci pour cet article, c’est très intéressant. Le fait de lancer le pré-chargement des autres pages dans le header de la page courante ne ralenti pas son chargement global ?

  3. 3

    Merci !
    Absolument pas non, les navigateurs le gèrent en tâche de fond.

Publiez un commentaire