Maison >interface Web >Tutoriel H5 >Comment utiliser l'API d'historique HTML5 pour les applications à une seule page?
L'API d'histoire HTML5 fournit un moyen puissant de manipuler la pile d'historique du navigateur sans effectuer des rechargements de page complète, une fonctionnalité cruciale pour construire des applications à une page unique et réactifs (spas). Il utilise principalement deux méthodes: pushState()
et replaceState()
.
pushState()
Ajoute un nouvel état à la pile d'historique. Il faut trois arguments:
state
: un objet représentant l'état associé à la nouvelle entrée historique. Cet objet est accessible via l'événement popstate
. Il est crucial de garder cet objet relativement petit, car il est stocké dans la mémoire du navigateur. Souvent, vous l'utiliserez pour stocker des données pertinentes pour la vue actuelle, comme les ID ou les paramètres. title
: Un titre pour l'entrée historique. Actuellement, la plupart des navigateurs ignorent cette valeur, bien que les futurs navigateurs puissent l'utiliser. Il est de la meilleure pratique de fournir un titre descriptif. url
: Une URL représentant le nouvel état. Cette URL se reflète dans la barre d'adresse du navigateur, mais elle ne déclenche pas nécessairement un rechargement de page. Cette URL doit être relative à l'emplacement de la page actuelle. Le navigateur ne navigue pas réellement à cette URL à moins que l'utilisateur n'utilise les boutons arrière / avant ou rafraîchisse la page. Exemple: history.pushState({ page: 1 }, 'Page 1', '/page1');
Cela ajoute une nouvelle entrée d'historique avec l'état { page: 1 }
, le titre `` Page 1 '
dans la pile d'historique. Ceci est utile pour mettre à jour l'URL sans ajouter des entrées inutiles à l'historique. Exemple: replaceState()
pushState()
L'événement se déclenche lorsque l'utilisateur navigue à travers l'historique du navigateur à l'aide des boutons arrière ou avant, ou lorsque la page est restaurée à partir d'un signet. Vous devez écouter cet événement pour mettre à jour le contenu du spa en conséquence. history.replaceState({ page: 2 }, 'Page 2', '/page2');
Cet extrait de code écoute l'événement popstate
et, si un objet d'état existe, quels sont les avantages du spa de l'utilisation de l'historique hypothétique. Impliquez la manipulation de l'URL à l'aide de fragments de hachage (
<code class="javascript">window.addEventListener('popstate', function(event) { if (event.state) { // Update the SPA based on event.state console.log("State:", event.state); renderPage(event.state.page); } });</code>
ou popstate
est appelée directement. Il ne tire que lorsque l'utilisateur interagit avec les boutons arrière / avant du navigateur. Par conséquent, vous aurez probablement besoin d'une manipulation initiale de l'état distinct de l'écouteur d'événements
pushState()
Quelles sont les pièges courants à éviter lors de l'implémentation de l'API d'histoire HTML5 dans une application à une seule page? replaceState()
popstate
: Ne pas écouter l'événement popstate
entraînera le spa qui ne répondra pas correctement aux objets de retour / avant de navigation. Gardez l'objet d'état concis et pertinent. state
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!