GWT token Gestion de l'historique
Par Francois Wauquier le lundi 5 avril 2010, 10:15 - Lien permanent
La Gestion de l'historique et la possibilité d'avoir des pages 'bookmarkable'
est un plus de GWT.
Vous remarquerez le !Cw
Cela est rendu possible grâce à
une chaîne de caractères nomée token, placée après un # dans l'url.
Exemple :
http://www.google.com/moderator/#15/e=8ea&t=8ea.41&f=8ea.3070
Le token représente un état du
client, il n'est jamais envoyé au serveur et son changement ne provoque pas
de rafraichissement de la page ni appel au serveur.
Pourquoi c'est important ?
Les utilisateurs internautes ont acquis des reflexes "web" et s'attendent donc à :- pouvoir faire précédent et
suivant
- créer un favori pour revenir au même endroit (ou dans le même état) ultérieurement
- créer un favori pour revenir au même endroit (ou dans le même état) ultérieurement
Pourquoi c'est (encore plus) important ?
Parce que google nous prépare une
technique d'indexation des pages dynamiques
Google fait ses essais avec le
Showcase de GWT.
http://www.google.fr/search?q=gwt+showcase+radio+buttonVous remarquerez le !Cw
En pratique, cela revient à
fournir 2 versions de la page, une en html+Javascript pour
l'utilisateur , qui veut que ça aille vite, et une html pour le robot
d'indexation, qui veut lire du html.
C'est un énorme enjeu pour
Google, qui a proposé un outil qui lui a 'masqué' une partie du Web.
Cette lacune est sur le point
d'être comblée.
Que propose GWT ?
Les classes de base sont :
On remarque cependant que beaucoup adoptent les mêmes syntaxes proches des urls
en utilisant les séparateurs / ? et &- History auquel on peut ajouter un ValueChangeHandler<String> pour être prévenu des
changements de token.
- Hyperlink qui est le widget de base qui permet de
déclencher un changement de token sur un clic.
GWT vous permet de construire
votre token comme vous le souhaitez et cela reste assez bas niveau : il se
contente de fournir un String java, à vous de le découper.
Pour plus de détails
:
Frameworks
Il existe donc plusieurs
frameworks qui tentent de faciliter la gestion de ce token :
Restful-gwt
http://code.google.com/p/restful-gwt/
Ce projet utilise les annotations JAX-RS afin d'extraire et découper le token.
Exemple
Ce projet utilise les annotations JAX-RS afin d'extraire et découper le token.
| @GET @Path("hello/{name}") public void helloWithIntegerParam(@PathParam("name") Integer myName) { Window.alert("Hello "+(myName+1)); } |
Exemple
gwt-mvc
http://code.google.com/p/gwt-mvc/
Ce projet reprend les conventions JSP.
Ce projet reprend les conventions JSP.
Le token est ainsi découpé:
#ACTION?param1=value1¶m2=value2
|
Exemple
