2010-08-06 5 views
3

Donnez-moi une idée de la gestion des données dans GWT. J'utilise Gwt dans mon projet de portail de voyage et mes pages Web sont liées aux données de la page précédente, mais lorsque j'appuie sur le bouton d'actualisation du navigateur, mes données sont perdues. alors s'il vous plaît informez-moi s'il y a un moyen de gérer ce problème.Gestion de l'historique (bouton Actualiser)

Répondre

0

L'idée de base est de stocker un état dans la URL fragment (la partie de l'URL après la #) - par exemple your-site.com/app#page-1

Pour écouter les modifications apportées au fragment, utilisez la classe de GWT History. Le fragment va changer lorsque l'utilisateur va en arrière/en avant, ou actualise la page.

Vous pourriez avoir votre application faire des choses différentes lorsque l'URL a #page-1 vs #page-2, etc.

Une solution plus généralisée et évolutive à cette question est quelque chose comme l » architecture Placegwt-platform (ainsi que des présentateurs, qui sont également une bonne idée pour les applications de grande taille)

1

GWT La classe d'historique ne peut pas être utilisée pour gérer l'actualisation de la page (seulement en arrière/en avant).

Un clic sur le bouton d'actualisation envoie une requête au serveur et l'état de l'application est rechargé à partir du serveur. C'est tout. Vous devez faire avec.

Si vous ne voulez pas perdre vos données, vous devez trouver un moyen de les sauvegarder sur le serveur quand vous en avez besoin.

1

Si vos utilisateurs disposent de navigateurs modernes, vous pouvez utiliser la fonctionnalité HTML5 localStorage pour stocker les données dans le navigateur entre l'actualisation des pages.

Vérifiez this thread pour le navigateur supporté.

1

Vous pouvez créer un fragment d'URL pour coder vos données.

Chaîne d'emplacement = "ny"; History.newItem ("location =" + location);

se traduira par un fragment url de www.example.com # location = ny

Ensuite, si le navigateur est actualisé, vous pouvez décoder le fragment d'URL et de déterminer que l'emplacement est ny.

Pour plusieurs paramètres, vous pouvez créer un fragment complexe et l'analyser.

History.newItem ("start =" + startLocation + "& end =" + endLocation); Ensuite, l'URL ressemblerait à www.example.com # start = newyork & end = boston

Questions connexes