


Nouvelles fonctionnalités de l'historique HTML5 pushState, replaceState et la différence entre les deux compétences du didacticiel _html5
L'objet window dans le DOM permet d'accéder à l'historique du navigateur via la méthode window.history, vous permettant d'avancer et de reculer dans l'enregistrement d'accès de l'utilisateur.
À partir de HTML5, nous pouvons commencer à manipuler cette pile d'historique.
1. Historique
Utilisez les méthodes back(), forward() et go() pour avancer dans l'historique de l'utilisateur et Précédent
Avant et Précédent
Retour :
window.history.back();
Cette méthode agira comme si l'utilisateur avait cliqué sur la touche retour de la barre d'outils du navigateur.
De même, la méthode suivante peut également être utilisée pour générer le comportement de transfert de l'utilisateur :
window.history.forward();
Déplacez-vous vers une position spécifique dans l'historique
Vous peut utiliser la méthode go() pour charger une page spécifique à partir de l'historique de session.
Reculer d'une page :
window.history.go(-1);
Avancer d'une page :
window.history.go(1);
De même, vous pouvez avancer ou revenir en arrière sur plusieurs pages.
Vous pouvez également trouver le nombre total de pages dans la pile d'historique en vérifiant la propriété length de l'historique du navigateur.
var numberOfEntries = window.history .length;
Remarque : IE prend en charge la transmission des paramètres d'URL à la méthode go().
2. Ajouter et modifier des entités d'historique
Introduit depuis Gecko2 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
HTML5 a introduit les deux méthodes history.pushState() et history.replaceState(), qui permettent d'ajouter et de modifier des entités d'historique. En même temps, ces méthodes fonctionneront avec l'événement window.onpostate.
Utilisez la méthode history.pushState() pour modifier le référent. Cette méthode peut être utilisée dans l'en-tête http créé pour l'objet xmlhttpRequest après avoir modifié l'état. Ce référent sera l'URL du document lors de la création du XMLHttpRequest.
pushState est utilisé pour ajouter l'enregistrement de la page actuelle à l'historique, tandis que replaceState est utilisé exactement de la même manière que pushState. La seule différence est qu'il est utilisé pour modifier l'enregistrement de la page actuelle dans l'historique.
Exemple
Supposons que la page http://mozilla.org/foo.html exécute JS
var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar. html");
Cette méthode entraînera l'affichage de la barre d'adresse URL http://mozilla.org/bar.html, mais le navigateur ne chargera pas la page bar.html, même si cette page existe.
Maintenant, supposons à nouveau que l'utilisateur continue sur http://google.com et clique en arrière. À ce stade, la barre d'adresse URL sera http://mozilla.org/bar.html et la page recevra l'événement popstate (chrome). Cet objet d'état contiendra une copie de stateObj. Cette page ressemble à foo.html.
À ce moment-là, nous cliquons à nouveau, l'URL deviendra http://mozilla.org/foo.html et le document recevra un autre événement popstate et un objet d'état nul. Cette action de retour ne modifie pas le contenu du document. (Essayez peut-être de charger... Chrome après un moment)
méthode pushState
pushState() a trois paramètres : objet d'état, titre (maintenant ignoré et non traité), URL (facultatif). Détails spécifiques :
· Objet d'état – L'objet d'état est un objet JavaScript, qui est lié à la nouvelle entité historique créée par la méthode pushState(). Utilisé pour stocker des informations sur l'entrée que vous souhaitez insérer dans l'historique. L'objet d'état peut être n'importe quelle chaîne Json. Étant donné que Firefox utilisera le disque dur de l'utilisateur pour accéder à l'objet d'état, l'espace de stockage maximum de cet objet est de 640 Ko. Si elle est supérieure à cette valeur, la méthode pushState() lèvera une exception. Si vous avez vraiment besoin de plus d’espace de stockage, utilisez le stockage local.
· title—firefox ignore désormais ce paramètre, bien qu'il puisse être utilisé à l'avenir. Le moyen le plus sûr de l'utiliser maintenant est de passer une chaîne vide pour empêcher de futures modifications. Ou vous pouvez transmettre un titre court pour représenter l'état
· URL : ce paramètre est utilisé pour transmettre l'URL de la nouvelle entité d'historique. Notez que le navigateur ne chargera pas cette URL après avoir appelé la méthode pushState(). Mais peut-être qu'il essaiera de charger cette URL après un certain temps. Par exemple, une fois que l'utilisateur a redémarré le navigateur, la nouvelle URL peut ne pas être un chemin absolu. S'il s'agit d'un chemin relatif, il sera relatif à l'URL existante. La nouvelle URL doit être dans le même domaine que l'URL existante, sinon pushState() lèvera une exception. Ce paramètre est facultatif. S'il est vide, il sera défini sur l'URL actuelle du document.
Dans un sens, appeler la méthode pushState() est très similaire à la définition de window.location = "#foo". Les deux créeront et activeront une autre entité d'historique associée au document actuel, mais pushState(). )Il y a aussi quelques avantages :
La nouvelle URL peut être n'importe quelle URL du même domaine que l'URL actuelle. En revanche, si vous définissez uniquement le hachage, window.location restera dans le même document.
Vous n'avez pas besoin de modifier l'URL si vous n'en avez pas besoin. En revanche, définir window.location = "#foo"; génère uniquement une nouvelle entité d'historique. Si votre hachage actuel n'est pas #foo
, vous pouvez associer des données arbitraires à votre nouvelle entité d'historique. En utilisant des méthodes basées sur le hachage, toutes les données pertinentes doivent être codées dans une courte chaîne.
Notez que la méthode pushState() n'entraînera pas l'heure de changement de hachage, même si l'ancienne et la nouvelle URL n'ont que des hachages différents. La méthode
replaceState()
history.replaceState() est utilisée un peu comme pushState(), sauf que replaceState() est utilisée pour modifier l'entité historique actuelle au lieu d'en créer une nouvelle. Cette méthode est parfois utile lorsque vous devez mettre à jour un objet d'état ou l'entité d'historique actuelle en réponse à certaines actions de l'utilisateur, vous pouvez l'utiliser pour mettre à jour l'objet d'état ou l'URL de l'entité d'historique actuelle.
Événement popstate
Lorsque l'entité historique est modifiée, l'événement popstate se produit. Si l'entité d'historique est générée par les méthodes pushState et replaceState, l'attribut state de l'événement popstate contiendra une copie de l'objet d'état de l'entité d'historique
Pour plus de détails, voir window.onpopstate
Lire l'état actuel
Lire l'état existant
Lorsque la page se charge, elle peut avoir un objet d'état non vide. Cela peut se produire lorsque l'utilisateur redémarre le navigateur après que la page ait défini un objet d'état (en utilisant pushState ou replaceState). Lorsque la page se recharge, la page recevra l'événement onload, mais il n'y aura pas d'événement popstate. Cependant, si vous lisez la propriété history.state, vous obtiendrez l'objet d'état après que l'événement popstate se soit produit
var currentState = history.state
Navigateurs : testés et fonctionnels
Navigateurs HTML5
Chrome 8,9,10
Firefox 4
Safari 5
Opera 11
Safari iOS 4.3
Navigateurs HTML4
IE6,7,8,9
Firefox 3
Opera 10
Safari 4
Safari iOS avant la version 4.3
pushState et replaceState Difference
history.pushState(state, title, url)
-------------------- - ------------------------------------------------- - ---------
Ajoutez l'URL actuelle et history.state à l'historique, et remplacez l'URL actuelle par le nouvel état et l'URL. Cela n’entraînera pas l’actualisation de la page.
state : informations d'état correspondant à l'URL vers laquelle accéder.
title:
を渡す必要はありません。url: ジャンプ先の URL アドレス。ドメインを越えることはできません。
history.replaceState(状態, タイトル, URL)
-------------------------- -- ------------------------------------------------ --
現在の状態と URL を新しいものに置き換えます。ページが更新されることはありません。
state: ジャンプ先の URL に対応する状態情報。
title: 渡すことはできません。
url: ジャンプ先の URL アドレス。ドメインを越えることはできません。
------------------------------------------ ---------- ------------------------------------
あるようです両者に違いはありませんが、実際の大きな違いは、pushState は履歴レコードを追加しますが、replaceState は追加しないことです。

H5 améliore l'expérience utilisateur Web avec le support multimédia, le stockage hors ligne et l'optimisation des performances. 1) Support multimédia: H5 et les éléments simplifient le développement et améliorent l'expérience utilisateur. 2) Stockage hors ligne: WebStorage et indexDDB permettent une utilisation hors ligne pour améliorer l'expérience. 3) Optimisation des performances: les travailleurs Web et les éléments optimisent les performances pour réduire la consommation de bande passante.

Le code HTML5 se compose d'étiquettes, d'éléments et d'attributs: 1. La balise définit le type de contenu et est entourée de supports d'angle, tels que. 2. Les éléments sont composés d'étiquettes de démarrage, de contenus et de balises d'extrémité, telles que le contenu. 3. Les attributs définissent les paires de valeurs clés dans la balise de démarrage, améliorent les fonctions, telles que. Ce sont les unités de base pour créer une structure Web.

HTML5 est une technologie clé pour créer des pages Web modernes, offrant de nombreux nouveaux éléments et fonctionnalités. 1. HTML5 introduit des éléments sémantiques tels que, etc., qui améliore la structure des pages Web et le référencement. 2. Prise en charge des éléments multimédias et des supports intégrés sans plug-ins. 3. Les formulaires améliorent les nouveaux types d'entrée et les propriétés de vérification, simplifiant le processus de vérification. 4. Offrez des fonctions de stockage hors ligne et locales pour améliorer les performances des pages Web et l'expérience utilisateur.

Les meilleures pratiques pour le code H5 incluent: 1. Utilisez des déclarations de doctype correctes et l'encodage des caractères; 2. Utilisez des balises sémantiques; 3. Réduire les demandes HTTP; 4. Utiliser le chargement asynchrone; 5. Optimiser les images. Ces pratiques peuvent améliorer l'efficacité, la maintenabilité et l'expérience utilisateur des pages Web.

Les normes et technologies Web ont évolué à ce jour de HTML4, CSS2 et JavaScript simple et ont subi des développements importants. 1) HTML5 introduit des API telles que Canvas et WebStorage, ce qui améliore la complexité et l'interactivité des applications Web. 2) CSS3 ajoute des fonctions d'animation et de transition pour rendre la page plus efficace. 3) JavaScript améliore l'efficacité de développement et la lisibilité du code par la syntaxe moderne de Node.js et ES6, telles que les fonctions et classes Arrow. Ces changements ont favorisé le développement de l'optimisation des performances et les meilleures pratiques des applications Web.

H5 n'est pas seulement l'abréviation de HTML5, il représente un écosystème de technologie de développement Web moderne plus large: 1. H5 comprend HTML5, CSS3, JavaScript et API et technologies connexes; 2. Il offre une expérience utilisateur plus riche, interactive et fluide et peut fonctionner de manière transparente sur plusieurs appareils; 3. À l'aide de la pile de technologie H5, vous pouvez créer des pages Web réactives et des fonctions interactives complexes.

H5 et HTML5 se réfèrent à la même chose, à savoir HTML5. HTML5 est la cinquième version de HTML, apportant de nouvelles fonctionnalités telles que les balises sémantiques, la prise en charge multimédia, la toile et les graphiques, le stockage hors ligne et le stockage local, l'amélioration de l'expressivité et de l'interactivité des pages Web.

H5Referstohtml5, apivotaltechnologyInwebdevelopment.1) html5introducesnewelementsandapisforrich, dynamicwebapplications.2) itsupp OrtsMultimeDiaHithoutPlugins, améliorant la réception detièmeaCrOsDevices.3) SemantelelementsImproveContentsTructureAndSeo.4) H5'sRespo


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP