Chrome : avec bfcache, Google voudrait booster le chargement des pages Web déjà visitées,
un prototype est présenté sur desktop et Android

Chrome est susceptible de bénéficier d'une accélération dans l’affichage des pages Web, du moins pour celles qui ont été récemment visitées grâce à une fonctionnalité appelée bfcache (back/forward cache).

Addy Osmani, Eng Manager, Web Developer Relations explique que

Citation Envoyé par Addy Osmani
Dans l'équipe Chrome, nous explorons un nouveau cache précédent / suivant pour mettre en cache des pages en mémoire (en préservant l'état JavaScript et DOM) lorsque l'utilisateur navigue. Ce n’est certainement pas une entreprise anodine, mais si nous y parvenons, cela rendra la navigation en aller et retour très rapide.

Un cache précédent / suivant (bfcache) met en cache des pages entières (y compris le segment JavaScript) lors de la navigation en dehors d'une page, de sorte que l'état complet de la page puisse être restauré lorsque l'utilisateur revient en arrière. Voyez cela comme une pause dans une page lorsque vous la quittez et une lecture à votre retour.
Vous trouverez ci-dessous un aperçu d'un prototype de cache précédent / suivant en action (première vidéo sur la version desktop et seconde sur Android)




Chrome met déjà en cache les fichiers qui constituent une page. Par conséquent, dans la plupart des cas, repartir sur une page ne devrait pas obliger le navigateur à récupérer les images, les scripts Java et les scripts CSS utilisés pour créer la page. Mais actuellement, le navigateur doit réanalyser le code HTML et reconstruire la représentation programmatique de la page, décompresser les images, réexécuter tout le code JavaScript, réappliquer toutes les feuilles de style, etc. C'est simplement l'étape de mise en réseau qui est ignorée.

Le nouveau bfcache change la donne : il permet au navigateur de capturer l’état complet d’une page en cours - y compris les scripts en cours d’exécution, les images rendues et même la position de défilement et recharge cet état plus tard. Avec bfcache, plutôt que de devoir recharger la page à partir de zéro, la page sera comme mise en pause lorsque vous cliquez sur un lien vers une nouvelle page et la lecture va reprendre par la suite lorsque vous allez cliquer sur précédente.

Bfcache ne va fonctionner que sur les pages que vous avez déjà visitées

Contrairement aux caches de fichiers, qui peuvent accélérer le chargement même de nouvelles pages et s'étendre sur plusieurs sessions de navigation, bfcache va accélérer uniquement les pages que vous avez récemment visitées. Comme son nom l'indique, il ne sert qu'à la navigation à partir des boutons Précédent et Suivant pour consulter votre historique. Mais Google indique que de telles visites représentent une part importante des sessions de navigation classiques, avec environ 10% des pages sur le bureau et 19% des pages sur mobile ainsi revisitées.

Safari et Firefox utilisent un type de mise en cache similaire depuis des années. Safari appelle cela Page Cache (cache de page) et l’a implémenté depuis 2002, tandis que celui de Firefox est appelé BFCache. Il existe dans une certaine forme depuis Firefox 1.5 en 2005. Bien que le moteur Blink de Google ait un héritage commun avec le moteur WebKit de Safari d'Apple, Google a choisi de ne pas utiliser l'équivalent de WebKit dans bfcache, affirmant qu'il est incompatible avec le modèle multiprocessus utilisé par Chrome.

Citation Envoyé par Addy Osmani
Ce changement présente un risque moyen d’interopérabilité entre les navigateurs. Firefox et Safari ont déjà des implémentations de cache en amont qui sont légèrement différentes. Chrome choisit de ne pas utiliser la mise en oeuvre de bfcache par WebKit en raison d’une incompatibilité avec l’architecture multiprocessus de Chrome. Notre intention formelle d’implémentation de la mémoire cache Précédent - Suivant est sur blink-dev pour tous ceux qui souhaitent contribuer aux discussions.
En clair, le navigateur Safari d’Apple et Firefox de Mozilla prennent déjà en charge une technologie de mise en cache similaire. Donc, Chrome essaye de rattraper son retard.

Nom : chrome.jpg
Affichages : 3130
Taille : 38,3 Ko

L’équipe Chrome va devoir réécrire certaines parties essentielles du navigateur

La partie la plus délicate pour Chrome consiste à réécrire certaines parties essentielles du navigateur afin de protéger la confidentialité et la sécurité. C'est parce que Chrome doit s'assurer qu'il empêche réellement les programmes JavaScript basés sur le Web de s'exécuter, même s'ils sont suspendus en mémoire, a déclaré Addy Osmani.

Citation Envoyé par Addy Osmani
L'exécution de JavaScript sur des pages qui ne sont pas présentes du point de vue de l'utilisateur est un gros problème potentiel de confidentialité. C'est pourquoi nous allons modifier l'architecture de Chrome pour éviter que cela ne se produise.
Google espère tester bfcache en 2019 et l'intégrer à Chrome en 2020, a-t-il ajouté.

L'enregistrement de l'état des pages Web en vue d'une éventuelle utilisation ultérieure consomme de la mémoire, un point de blocage déjà pour les navigateurs. Google tente toujours de déterminer les meilleures règles pour choisir les pages à conserver et le moment de les vider de mémoire, a affirmé Osmani.

La fonctionnalité pourrait également aider dans d’autres situations, a-t-il ajouté. L'une est l'amélioration des performances des onglets que Chrome doit mettre en pause lorsqu'ils sont en arrière-plan, en particulier sur les appareils mobiles. Cela économise de la mémoire, mais les pages en pause d’aujourd’hui peuvent être frustrantes lorsque vous y retournez et que leur chargement est lent.

Source : Google

Et vous ?

Que pensez-vous de cette initiative ?

Voir aussi :

35 % des extensions Chrome accèdent aux données des utilisateurs sur n'importe quel site, d'après une étude du laboratoire Duo Labs
Google apporte des modifications à une API Chrome pour empêcher que les sites ne détectent le mode Incognito, à partir de Chrome 74
Extensions Chrome : Google pourrait renoncer aux modifications annoncées, une analyse révèle que des extensions sont conformes au Manifest V3
Chrome pourrait vous permettre de partager un lien vers un mot ou une phrase spécifique sur une page Web, la fonctionnalité est en mode expérimental