Table des matières

Gestion des bookmarks et de l'historique dans un site en Web2

Nous allons ici présenter le principe qui permet d'avoir des pages “bookmarkables” et d'avoir un historique de navigation dans un site Web2.
Le principe du web2 étant de ne plus changer de page et de recharger uniquement les informations utiles, le fonctionnement interne du navigateur s'en trouve perturbé.
En effet, les boutons suivant/précédent sont inopérant et si on place un marque-page sur le site, celui-ci pointera vers le point d'entré et non vers la page actuelle.
L'idée serais donc de pouvoir changer l'url de la barre de navigation sans pour autant recharger toute la page.
Et ceci est impossible…
Par contre, on peu changer le hash de l'url. Et c'est ce qui va nous servir.

Qu'est-ce que le hash de l'url ?

Le hash de l'url est la partie finale d'une url, souvent ajoutée suite à un clic sur un lien ancre.
Exemple :

Pour changer le hash, c'est très simple :

javascript
document.location.hash="petit_test";

Comment le hash va nous servir ?

Lorsqu'une page que l'on souhaite mettre en historique sera appelée, on modifiera le hash de la page en lui incorporant une référence qui nous permettra plus tard d'identifier la page qui était chargée.
Exemple :
L'utilisateur clique sur un lien web2 qui charge la page “welcome.php”. On pourra mettre dans le hash “welcome.php”…

De cette façon chaque changement de page sera notifié au navigateur.
Si on s'arrêtait là, les marques-pages fonctionnerais déjà. En revanche l'historique demande d'autres ajustement.
Comme il n'existe pas d'événement HTML permettant de savoir que hash de la page a changé, il va falloir mettre en place une fonction qui se lance à intervalle régulier et qui vérifie si le hash a changé. En cas de changement cette fonction ce chargera de faire la requête WEB2 qu'il faut pour recharger la page. Ainsi par exemple, lors d'un appuie sur précédent, le navigateur va changer le hash de la page et le script va détecter ce changement et agir en conséquence.

Tous les navigateurs fonctionne de la même façon ?

Non… Comme d'habitude… C'est pour cela que cet article ne fait qu'état du fonctionnement théorique afin que vous compreniez mieux comment doivent être géré ces informations en web2.
Une autre technique consiste à adjoindre au hash de la page une iframe dont la source sera modifier de la même façon que hash. Ceci permet la compatibilité avec plus de navigateur.

Exemple

La page ci-dessous est un petit exemple ne tournant que sur Firefox et illustrant ce qui a été dit ici. web2_history.htm

Pour aller plus loin

Il existe de nombreux scripts tout prêt permettant de gérer l'historique. En voici déjà 2 :

—-
29/10/2007 09:14 -

iDo –