suchen
HeimWeb-FrontendH5-TutorialDie neuen HTML5-Funktionen pushState, replaceState und der Unterschied zwischen den beiden _html5-Tutorial-Fähigkeiten

Das Fensterobjekt im DOM ermöglicht den Zugriff auf den Browserverlauf über die window.history-Methode, sodass Sie im Zugriffsdatensatz des Benutzers vorwärts und rückwärts navigieren können.

Beginnend mit HTML5 können wir mit der Bearbeitung dieses Verlaufsstapels beginnen.

1. Verlauf

Verwenden Sie die Methoden back(), forward() und go(), um im Verlauf des Benutzers vorwärts zu gelangen Zurück

Vor und zurück

Zurück:


Code kopieren
Der Code lautet wie folgt:

window.history.back();

Diese Methode verhält sich so, als hätte der Benutzer auf die Zurück-Taste in der Browser-Symbolleiste geklickt.

Ähnlich kann auch die folgende Methode verwendet werden, um Benutzer-Weiterleitungsverhalten zu generieren:


Code kopieren
Der Code lautet wie folgt:

window.history.forward();

An eine bestimmte Position im Verlauf verschieben

Sie Sie können die Methode go() verwenden, um eine bestimmte Seite aus dem Sitzungsverlauf zu laden.

Eine Seite zurückgehen:


Kopieren Sie den Code
Der Code lautet wie folgt:

window.history.go(-1);

Eine Seite vorwärts:


Code kopieren
Der Code lautet wie folgt:

window.history.go(1)

Ähnlich, Sie können mehrere Seiten vor- oder zurückblättern.

Sie können die Gesamtzahl der Seiten im Verlaufsstapel auch ermitteln, indem Sie die Längeneigenschaft des Browserverlaufs überprüfen.


Code kopieren
Der Code lautet wie folgt:

var numberOfEntries = window.history .length;

Hinweis: IE unterstützt die Übergabe von URL-Parametern an die go()-Methode.

2. Verlaufselemente hinzufügen und ändern

Eingeführt seit Gecko2 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

HTML5 führte die beiden Methoden History.pushState() und History.replaceState() ein, die das Hinzufügen und Ändern von Verlaufsentitäten ermöglichen. Gleichzeitig funktionieren diese Methoden mit dem window.onpostate-Ereignis.

Verwenden Sie die Methode „history.pushState()“, um den Referrer zu ändern. Diese Methode kann im http-Header verwendet werden, der für das xmlhttpRequest-Objekt erstellt wurde, nachdem der Status geändert wurde. Dieser Referrer ist beim Erstellen der XMLHttpRequest die URL des Dokuments.

pushState wird verwendet, um den Datensatz der aktuellen Seite zum Verlauf hinzuzufügen, während replaceState genauso verwendet wird wie pushState. Der einzige Unterschied besteht darin, dass es zum Ändern des Datensatzes der aktuellen Seite im Verlauf verwendet wird.

Beispiel

Angenommen, die Seite http://mozilla.org/foo.html führt JS aus


Kopieren Code
Der Code lautet wie folgt:

var stateObj = { foo: "bar" }; html ");

Diese Methode führt dazu, dass in der URL-Adressleiste http://mozilla.org/bar.html angezeigt wird, der Browser jedoch die Seite bar.html nicht lädt, selbst wenn diese Seite vorhanden ist.

Gehen wir nun erneut davon aus, dass der Nutzer zu http://google.com weitergeht und zurück klickt. Zu diesem Zeitpunkt lautet die URL-Adressleiste http://mozilla.org/bar.html und die Seite erhält das Popstate-Ereignis (Chrome). Dieses Statusobjekt enthält eine Kopie von stateObj. Diese Seite sieht aus wie foo.html.

Zu diesem Zeitpunkt klicken wir erneut auf „Zurück“, die URL wird zu „http://mozilla.org/foo.html“ und das Dokument erhält ein weiteres Popstate-Ereignis und ein Nullstatusobjekt. Diese Rückgabeaktion ändert den Inhalt des Dokuments nicht. (Versuchen Sie vielleicht nach einer Weile, Chrome zu laden.)

pushState-Methode

pushState() hat drei Parameter: Statusobjekt, Titel (wird jetzt ignoriert und nicht verarbeitet), URL (optional). Spezifische Details:

· Zustandsobjekt – Das Zustandsobjekt ist ein JavaScript-Objekt, das mit der neuen Verlaufsentität verknüpft ist, die durch die Methode pushState() erstellt wurde. Wird zum Speichern von Informationen über den Eintrag verwendet, den Sie in den Verlauf einfügen möchten. Das Statusobjekt kann eine beliebige JSON-Zeichenfolge sein. Da Firefox für den Zugriff auf das Statusobjekt die Festplatte des Benutzers verwendet, beträgt der maximale Speicherplatz dieses Objekts 640 KB. Wenn er größer als dieser Wert ist, löst die Methode pushState() eine Ausnahme aus. Wenn Sie wirklich mehr Speicherplatz benötigen, verwenden Sie lokalen Speicher.

· Titel – Firefox ignoriert diesen Parameter jetzt, obwohl er möglicherweise in Zukunft verwendet wird. Der sicherste Weg, es jetzt zu verwenden, besteht darin, eine leere Zeichenfolge zu übergeben, um zukünftige Änderungen zu verhindern. Oder Sie können einen kurzen Titel übergeben, um den Status darzustellen.

· URL – Dieser Parameter wird verwendet, um die URL der neuen Verlaufsentität zu übergeben. Beachten Sie, dass der Browser diese URL nach dem Aufruf der pushState()-Methode nicht lädt. Aber vielleicht wird es nach einer Weile versuchen, diese URL zu laden. Nachdem der Benutzer beispielsweise den Browser neu gestartet hat, ist die neue URL möglicherweise kein absoluter Pfad. Wenn es sich um einen relativen Pfad handelt, ist er relativ zur vorhandenen URL. Die neue URL muss sich in derselben Domäne wie die vorhandene URL befinden, andernfalls löst pushState() eine Ausnahme aus. Dieser Parameter ist optional. Wenn er leer ist, wird er auf die aktuelle URL des Dokuments gesetzt.

In gewissem Sinne ist der Aufruf der pushState()-Methode dem Festlegen von window.location = „#foo“ sehr ähnlich. Beide erstellen und aktivieren eine weitere Verlaufsentität, die mit dem aktuellen Dokument verknüpft ist, aber pushState(). )Es gibt auch einige Vorteile:

Die neue URL kann eine beliebige URL in derselben Domäne wie die aktuelle URL sein. Wenn Sie dagegen nur den Hash festlegen, bleibt window.location im selben Dokument.

Sie müssen die URL nicht ändern, wenn dies nicht erforderlich ist. Im Gegensatz dazu generiert die Einstellung window.location = "#foo"; nur eine neue Verlaufsentität. Wenn Ihr aktueller Hash nicht #foo ist

, können Sie Ihrer neuen Verlaufsentität beliebige Daten zuordnen. Bei Verwendung von Hash-basierten Methoden müssen alle relevanten Daten in einen kurzen String kodiert werden.

Beachten Sie, dass die Methode pushState() nicht dazu führt, dass die Hash-Änderungszeit auftritt, selbst wenn die alte und die neue URL nur unterschiedliche Hashes haben.

replaceState()-Methode

history.replaceState() wird ähnlich wie pushState() verwendet, außer dass replaceState() zum Ändern verwendet wird die aktuelle Verlaufsentität, anstatt eine neue zu erstellen. Diese Methode ist manchmal nützlich, wenn Sie ein Statusobjekt oder die aktuelle Verlaufsentität als Reaktion auf bestimmte Benutzeraktionen aktualisieren müssen. Sie können damit das Statusobjekt oder die URL der aktuellen Verlaufsentität aktualisieren.

Popstate-Ereignis

Wenn die Verlaufsentität geändert wird, tritt das Popstate-Ereignis auf. Wenn die Verlaufsentität durch die Methoden pushState und replaceState generiert wird, enthält das Statusattribut des Popstate-Ereignisses eine Kopie des Statusobjekts aus der Verlaufsentität

Einzelheiten finden Sie unter window.onpopstate

Aktuellen Status lesen

Vorhandenen Status lesen

Wenn die Seite geladen wird, verfügt sie möglicherweise über ein nicht leeres Statusobjekt. Dies kann passieren, wenn der Benutzer den Browser neu startet, nachdem die Seite ein Statusobjekt festgelegt hat (mithilfe von pushState oder replaceState). Wenn die Seite neu geladen wird, empfängt die Seite das Onload-Ereignis, es gibt jedoch kein Popstate-Ereignis. Wenn Sie jedoch die Eigenschaft „history.state“ lesen, erhalten Sie das Statusobjekt, nachdem das Popstate-Ereignis auftritt
var currentState = History.state;
Browser: Getestet und in Betrieb

HTML5-Browser

Chrome 8,9,10
Firefox 4
Safari 5
Opera 11
Safari iOS 4.3
HTML4-Browser

IE6,7,8,9
Firefox 3
Opera 10
Safari 4
Safari iOS vor Version 4.3

pushState und replaceState Difference

history.pushState(state, title, url)

-------------------- - ------------------------------------------------- - ---------

Fügen Sie die aktuelle URL und den aktuellen History.state zum Verlauf hinzu und ersetzen Sie die aktuelle durch den neuen Status und die neue URL. Die Seite wird dadurch nicht aktualisiert.

Status: Statusinformationen, die der URL entsprechen, zu der gesprungen werden soll.

titre : Pas besoin de transmettre

url : adresse URL vers laquelle accéder, ne peut pas traverser le domaine.

history.replaceState(état, titre, url)

-------------------------- -- ------------------------------------------------ --

Remplacez l'état et l'URL actuels par le nouveau. Cela n’entraînera pas l’actualisation de la page.

state : informations d'état correspondant à l'URL vers laquelle accéder.

titre : ne peut pas être transmis

url : adresse URL vers laquelle accéder, ne peut pas traverser le domaine.

------------------------------------------------------ ------ ------------------------------------

Il semble Il n'y a pas de différence entre les deux, mais en fait, la grande différence est que pushState ajoute des enregistrements d'historique, alors que replaceState ne le fait pas.
Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
H5: Wie es die Benutzererfahrung im Web verbessertH5: Wie es die Benutzererfahrung im Web verbessertApr 19, 2025 am 12:08 AM

H5 verbessert die Erfahrung des Webbenutzers mit Multimedia -Support, Offline -Speicher und Leistungsoptimierung. 1) Multimedia -Unterstützung: H5 und Elemente vereinfachen die Entwicklung und verbessern die Benutzererfahrung. 2) Offline -Speicher: Webstorage und IndexedDB ermöglichen die Verstärkung der Erfahrung offline. 3) Leistungsoptimierung: Webworker und Elemente optimieren die Leistung, um den Bandbreitenverbrauch zu verringern.

Dekonstruieren von H5 -Code: Tags, Elemente und AttributeDekonstruieren von H5 -Code: Tags, Elemente und AttributeApr 18, 2025 am 12:06 AM

Der HTML5 -Code besteht aus Tags, Elementen und Attributen: 1. Das Tag definiert den Inhaltstyp und ist von Winkelklammern umgeben, wie z. 2. Elemente bestehen aus Start -Tags, Inhalten und End -Tags wie Inhalten. 3. Attribute definieren Schlüsselwertpaare im Start-Tag und verbessern Funktionen, z. B.. Dies sind die grundlegenden Einheiten zum Aufbau von Webstruktur.

H5 -Code verstehen: Die Grundlagen von HTML5H5 -Code verstehen: Die Grundlagen von HTML5Apr 17, 2025 am 12:08 AM

HTML5 ist eine Schlüsseltechnologie zum Aufbau moderner Webseiten und bietet viele neue Elemente und Funktionen. 1. HTML5 führt semantische Elemente wie usw. ein, die die Webseitenstruktur und die SEO verbessern. 2. Support Multimedia-Elemente und Einbetten von Medien ohne Plug-Ins. 3. Formulare verbessern neue Eingangstypen und Überprüfungseigenschaften und vereinfachen Sie den Überprüfungsprozess. 4. Bieten Sie Offline- und lokale Speicherfunktionen an, um die Leistung der Webseiten und die Benutzererfahrung zu verbessern.

H5 -Code: Best Practices für WebentwicklerH5 -Code: Best Practices für WebentwicklerApr 16, 2025 am 12:14 AM

Zu den Best Practices für den H5 -Code gehören: 1. Verwenden Sie korrekte DocType -Deklarationen und Zeichenkodierung; 2. Verwenden Sie semantische Tags; 3.. HTTP -Anfragen reduzieren; 4. Verwenden Sie asynchrone Laden; 5. Bilder optimieren. Diese Praktiken können die Effizienz, Wartbarkeit und Benutzererfahrung von Webseiten verbessern.

H5: Die Entwicklung von Webstandards und TechnologienH5: Die Entwicklung von Webstandards und TechnologienApr 15, 2025 am 12:12 AM

Webstandards und -technologien haben sich bisher aus HTML4, CSS2 und einfachem JavaScript entwickelt und haben erhebliche Entwicklungen erfahren. 1) HTML5 führt APIs wie Leinwand und Webstorage ein, die die Komplexität und Interaktivität von Webanwendungen verbessern. 2) CSS3 fügt Animations- und Übergangsfunktionen hinzu, um die Seite effektiver zu gestalten. 3) JavaScript verbessert die Entwicklungseffizienz und die Lesbarkeit der Code durch moderne Syntax von Node.js und ES6, wie z. B. Pfeilfunktionen und Klassen. Diese Änderungen haben die Entwicklung von Leistungsoptimierung und Best Practices von Webanwendungen gefördert.

Ist H5 eine Abkürzung für HTML5? Erforschen der DetailsIst H5 eine Abkürzung für HTML5? Erforschen der DetailsApr 14, 2025 am 12:05 AM

H5 ist nicht nur die Abkürzung von HTML5, sondern auch ein breiteres Ökosystem der modernen Webentwicklungstechnologie: 1. H5 enthält HTML5, CSS3, JavaScript und verwandte APIs und Technologien; 2. Es bietet eine reichhaltigere, interaktive und reibungslose Benutzererfahrung und kann nahtlos auf mehreren Geräten ausgeführt werden. 3. Mit dem H5 -Technologie -Stack können Sie reaktionsschnelle Webseiten und komplexe interaktive Funktionen erstellen.

H5 und HTML5: häufig verwendete Begriffe in der WebentwicklungH5 und HTML5: häufig verwendete Begriffe in der WebentwicklungApr 13, 2025 am 12:01 AM

H5 und HTML5 beziehen sich auf dasselbe, nämlich HTML5. HTML5 ist die fünfte Version von HTML, die neue Funktionen wie semantische Tags, Multimedia -Support, Leinwand und Grafiken, Offline -Speicher und lokaler Speicher bietet, die Ausdrucksfähigkeit und Interaktivität von Webseiten verbessert.

Worauf bezieht sich H5? Erforschen des KontextesWorauf bezieht sich H5? Erforschen des KontextesApr 12, 2025 am 12:03 AM

H5REFERSTOHTML5, ApivotaltechnologyInwebdevelopment.1) HTML5IntroducesNewelementsandapisrich, Dynamicwebapplications.2) ITSUPP ortsmultimediaWitHoutPlugins, BETHINGINGUSEREXPERICERCROSSDEVICES.3) SEMANTICELEMENTSIMPROVEPENTENTENTENTRUCTENTRUCTELUREANDSEO.4) H5'SRespo

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung