Le client web en mode déconnecté arrive

C’est une petite révolution qui s’apprête à se produire avec l’arrivée imminente de scrybe qui propose une application de calendrier web fonctionnant en mode déconnecté.
En lisant la description du service, je me suis dit « ils embarquent probablement un petit serveur web à installer qui prend le relais lors de la déconnexion »… et puis j’ai lu : « aucune installation d’aucune sorte ». Ca m’a paru bizarre, mais c’est en réalité tout à fait possible.

Première possibilité : le pattern « richer plug-in »
Flash ou Java permettent d’écrire des données sur le poste client et donc de créer le cache local nécessaire. Flash et Java étant maintenant très répandus, on peut en effet considérer qu’une telle application n’impose aucune installation sur le poste client.

Seconde possibilité : le pattern « gâteaux-gâteaux »
Ce pattern devrait rester dans les tiroirs tant il pose de problème… mais développons un peu. Les cookies sont un moyen de stocker des données en local lorsque l’application est déconnectée et ne fonctionne qu’à coups de javascript.
Deux énormes soucis néanmoins : le premier est que les cookies sont petits (vous n’avez droit qu’à 20 cookies de 4 ko chacun : c’est TRES peu), le second est que les cookies sont fragiles : il est non seulement facile de les effacer, mais en plus le navigateur les efface peu à peu de lui-même lorsqu’il atteint la limite de 300 cookies ! Tout cela est donc très amusant conceptuellement mais pas réellement envisageable dans la vraie vie.

Troisième possbilité : le pattern « browser features »
Le but est ici d’utiliser les particularités des navigateurs couramment utilisés pour arriver à notre objectif. Ajax marche comme ça par exemple : on utilise deux techniques différentes (un contrôle ActiveX avec Internet Explorer et l’objet XmlHttpRequest avec Firefox) pour arriver au même but.
Notre objectif étant de stocker des données en local avec javascript, que peut-on envisager ? Là encore le duo Windows/Internet Explorer nous offre la possibilité d’un composant ActiveX pour lire et écrire des fichiers texte sur le poste client. Du côté de Firefox, depuis la très récente sortie de la version 2.0, il est possible d’utiliser un stockage local, une sorte de « super-cookies » n’ayant pas les restrictions évoquées plus haut… le pari semble donc jouable, même si aucune implémentation n’en est connue à ce jour !

Conclusion de tout ça : avec l’arrivée d’applications web fonctionnant en mode déconnecté, une des dernières restrictions à l’adoption massive du mode web pour les applicatifs est en train de tomber… plus que jamais, la révolution est en marche !

PS : j’ai appris aujourd’hui que c’est Flash qui avait été utilisé pour Scrybe