29 juin 2006

Sessions et contextes de navigation (2)

Mais non, ce n'est pas compliqué.

La session, c'est l'endroit où l'utilisateur fait ses actions.
Elle sert à logger les actions qui ont lieu dans une « unité de connexion », c'est-à-dire entre le moment où l'utilisateur se connecte -- il peut même s'identifier, on ne lui en voudra pas --, et le moment où il se déconnecte -- avec un beau timeout si besoin.
La session permet de rapprocher des actions entre elles, en disant en gros qu'elles sont l'œuvre du même utilisateur.

Les sessions inactives sont effacées au bout de, euh... d'un certain temps.

Le contexte de... données ? de page ? Ce sont des données mises dans un cache temporaire, au sein de la session.
Ce sont des données qui ne bougent pas au sein d'une « unité de consultation ».
Par exemple, lorsque l'utilisateur rapatrie une liste de messages, soit en se connectant une première fois, soit en cliquant sur « Rafraîchir », soit en effectuant une recherche, cela crée un contexte au sein de la session. L'utilisateur peut naviguer dans la liste, y lire des messages, la liste reste immuable. En particulier, elle n'est pas impactée par l'arrivée éventuelle de nouveaux messages dans le système. Il faut pour qu'il y ait un tel changement, un rafraîchissement explicite.

Pour ne pas dupliquer les données, ces contextes s'appuient sur des données « versionnées ».

Et pour ne pas faire exploser la base applicative, les contextes de données sont effacés au bout de, euh... disons que quand ça explose c'est trop tard.

Le contexte de... navigation ? de page ? Ce sont des informations de type contexte, qu'on accepte de véhiculer de page en page, pour éviter d'avoir à stocker trop d'informations en base.
Ce contexte suit une « unité de navigation ».
C'est typiquement un type de tri, qui peut être changé à l'affichage, même s'il impacte la navigation, sans avoir à recharger la liste.

Les contextes de navigation sont propagés de page en page, à condition de ne pas s'être vautré dans le code HTML.

Seule la session peut être suivie par un cookie. Et encore, ça coince dans le cas où deux sites sont sur le même serveur.
Le cookie sert donc davantage à la session multi-serveurs.
Hrem... Vaste sujet.


Ainsi, avec les contextes de données on peut faire du multi-écran et naviguer dans deux listes de résultats de recherches différentes, et avec les contextes de navigation on peut naviguer de façons différentes dans une même liste.

C'est super simple, non.

Aucun commentaire: