Browser History
La classe BrowserHistory
dans webforJ fournit une API de haut niveau pour interagir avec l'historique du navigateur. L'historique du navigateur permet aux applications web de suivre la navigation de l'utilisateur au sein de l'application. En tirant parti de l'historique du navigateur, les développeurs peuvent activer des fonctionnalités comme la navigation arrière et avant, la préservation de l'état et la gestion dynamique des URL sans nécessiter de rechargements de page complets.
Naviguer à travers l'historique
Gérer l'historique du navigateur est une fonctionnalité essentielle de la plupart des applications web. L'API BrowserHistory
permet aux développeurs de contrôler comment les utilisateurs naviguent à travers les pages et les états de leurs applications, imitant ou altérant le comportement standard du navigateur.
Initialiser ou récupérer une instance d'historique
Pour utiliser l'API BrowserHistory
, vous avez deux options principales pour obtenir une instance d'historique :
- Créer un nouvel objet d'historique : Si vous travaillez indépendamment d'un contexte de routage, vous pouvez créer une nouvelle instance de la classe
BrowserHistory
directement.
BrowserHistory history = new BrowserHistory();
Cette approche est adaptée aux scénarios où vous devez gérer l'historique de manière explicite en dehors d'un framework de routage.
- Récupérer l'historique depuis le
Router
: Si votre application utilise la solution de routage webforJ, le composantRouter
crée et gère une instance partagée deBrowserHistory
. Vous pouvez accéder directement à cette instance depuis le routeur, garantissant une approche cohérente de gestion de l'historique dans votre application.
BrowserHistory history = Router.getCurrent().getHistory();
Cette méthode est recommandée lorsque votre application repose sur le routage, car elle maintient la cohérence dans la gestion de l'historique à travers toutes les vues et actions de navigation.
Gérer l'historique
Les méthodes suivantes peuvent être utilisées pour la navigation dans l'historique dans une application webforJ :
-
back()
: Déplace l'historique du navigateur en arrière d'un pas, simulant un utilisateur appuyant sur le bouton de retour dans son navigateur. S'il n'y a plus d'entrées dans la pile d'historique, il reste sur la page actuelle.history.back();
-
forward()
: Déplace l'historique du navigateur vers l'avant d'un pas, simulant un utilisateur appuyant sur le bouton d'avance dans son navigateur. Cela ne fonctionne que s'il y a une entrée devant dans la pile d'historique.history.forward();
-
go(int index)
: Navigue vers un point spécifique dans la pile d'historique en fonction d'un index. Un nombre positif avance, un nombre négatif recule et zéro recharge la page actuelle. Cette méthode offre un contrôle plus granulaire par rapport àback()
etforward()
.history.go(-2); // Reculer de deux entrées dans la pile d'historique
-
size()
: Récupère le nombre total d'entrées dans la pile d'historique de session, y compris la page actuellement chargée. Cela peut être utile pour comprendre le chemin de navigation de l'utilisateur ou pour implémenter des contrôles de navigation personnalisés.int historySize = history.size();
System.out.println("Longueur de l'historique : " + historySize); -
getLocation()
: Renvoie le chemin URL actuel par rapport à l'origine de l'application. Cette méthode aide les développeurs à obtenir le chemin actuel, ce qui est utile pour gérer le routage basé sur des URL dans des applications à page unique.Optional<Location> location = history.getLocation();
location.ifPresent(loc -> System.out.println("Chemin actuel : " + loc.getFullURI()));
Comprendre comment naviguer efficacement est la pierre angulaire de la construction d'applications dynamiques. Une fois que vous maîtrisez les fondamentaux de la navigation, il est essentiel de savoir comment accéder et mettre à jour les URL associées à ces événements de navigation.