So verwenden Sie die History -API in JavaScript
Verwenden Sie die History-API, um aktualisierte URL-Updates und Browser-Navigationsunterstützung in einseitigen Anwendungen zu ermöglichen. 1. Zugangsgeschichte über Window.History, History. 2. verwenden Sie Pushstate (Status, Titel, URL), um dem Verlaufsstapel neue Einträge hinzuzufügen, die URL zu ändern und die Statusdaten zu verknüpfen, ohne die Seite zu aktualisieren. 3.. Verwenden Sie den Austausch (Status, Titel, URL), um die aktuellen historischen Einträge zu ersetzen, um wiederholte Vorgänge zu vermeiden, wenn der Benutzer zurückbackt. V. 5. In den tatsächlichen Anwendungen müssen manuelle UI-Updates, die relative Pfadnutzung, die serverseitige Routing-Konfiguration (z. B. alle SPA-Pfade auf index.html) und Browserkompatibilitätsprüfungen kombinieren, um eine reibungslose Navigation und Wiederherstellung zu gewährleisten. Die ordnungsgemäße Verwendung der Historie -API ermöglicht eine native nahtlose Navigationserfahrung.
Mit der History -API in JavaScript können Sie mit dem Sitzungsverlauf des Browsers interagieren - die Seiten, die in der aktuellen Registerkarte oder im aktuellen Fenster besucht werden. Es ist besonders nützlich, um einseitige Anwendungen (SPAs) zu erstellen, bei denen Sie die URL ändern und die Browser-Navigation (Rück-/Vorwärts-Schaltflächen) unterstützen möchten, ohne die Seite neu zu laden.

Hier erfahren Sie, wie Sie die History -API effektiv verwenden:
1. Verständnis window.history
. Historie
Das history
ist Teil des window
und bietet Methoden und Eigenschaften, um den Sitzungsverlauf zu navigieren und zu manipulieren.

Gemeinsame Eigenschaften:
-
history.length
- Anzahl der Seiten in der Sitzungshistorie. -
history.state
- Gibt eine Kopie des staatlichen Objekts des aktuellen Verlaufseintrags zurück.
2. Verwenden Sie pushState()
um einen neuen Eintrag hinzuzufügen
pushState()
fügt einen neuen Eintrag in den Stapel des Browser -Verlaufs hinzu, ohne die Seite neu zu laden.

Syntax:
history.pusstate (Staat, Titel, URL);
-
state
: Ein Objekt, das Daten enthält, die mit dem neuen Verlaufseintrag zugeordnet sind (z. B. Seitenzustand). -
title
: (derzeit von den meisten Browsern ignoriert) für den Seitentitel bestimmt. -
url
: Die neue URL zum Anzeigen (optional, muss gleichorientiert sein).
Beispiel:
// URL in /Seite 2 ändern und einen Zustand speichern history.pusstate ({Seite: 2}, "", "/Seite 2"); // Sie können jetzt über historische State auf den Staat zugreifen console.log (history.state); // {Seite: 2}
Dadurch wird die URL auf /page2
aktualisiert, lädt jedoch nicht die Seite - Ihr Spa übernimmt die Inhaltsänderung.
3.. Verwenden Sie replaceState()
um den aktuellen Eintrag zu ändern
replaceState()
funktioniert wie pushState()
, ersetzt jedoch den aktuellen Verlaufseintrag, anstatt eine neue hinzuzufügen.
Anwendungsfall: Aktualisieren der URL nach einer Aktion, ohne einen zusätzlichen Rückschritt zu erstellen.
History.Replacestate ({Seite: 3, Daten: "Aktualisiert"}, "", "/page3");
Jetzt wird der aktuelle Verlaufseintrag in /page3
geändert. Wenn Sie auf "zurück" klicken, überspringen Sie diesen modifizierten Status und gehen zum vorherigen.
4. Hören Sie sich popstate
-Events für die Navigation an
Wenn der Benutzer auf die Schaltfläche zurück oder voran klickt, feuert das popstate
-Ereignis. Sie können es anhören, um Ihren Seiteninhalt entsprechend zu aktualisieren.
window.addeventListener ("popstate", (event) => { console.log ("Ort:", document.location); console.log ("state:", event.state); // Inhalte basierend auf event.state oder aktueller URL neu render loadContentBasedonurl (); });
HINWEIS:
popstate
löst nur beim Navigieren zwischen Verlaufseinträgen mit einem Zustandsobjekt (z. B. denjenigen, die vonpushState
oderreplaceState
erstellt wurden) aus. NachreplaceState
feuern es nicht, es sei denn, Sie navigieren weg und zurück.
5. Praktisches Beispiel: Einfache Spa -Navigation
// Seitennavigation simulieren Funktionsnavigation (URL, PAGEDATA) { const title = `$ {url} - My App`; history.pusstate (pagedata, title, url); Renderpage (pagedata); } // Zurück/vorwärts window.addeventListener ("popstate", () => { Renderpage (Geschichte.State); }); // Erstes Rendern Funktion Renderpage (Zustand) { if (! Zustand) { document.body.innerhtml = "<h1> home </h1>"; } else if (state.page === 2) { document.body.innerhtml = "<h1> Seite 2 </h1>"; } anders { document.body.innerhtml = "<h1> Unbekannte Seite </h1>"; } } // Beispielnavigation Navigateto ("/Seite 2", {Seite: 2});
6. Best Practices und Gotchas
- Immer die Benutzeroberfläche manuell aktualisieren :
pushState
undreplaceState
nur die URL und den Verlauf - Sie müssen den Seiteninhalt selbst aktualisieren. - Verwenden Sie relative URLs : Halten Sie URLs einfach und relativ zum aktuellen Ursprung.
- Vollständige Seite laden : Wenn Benutzer eine direkte URL direkt neu laden oder besuchen, muss Ihr Server die richtige HTML (z. B. alle SPA -Pfade nach
index.html
) bedienen. - Überprüfen Sie den Browserunterstützung : Die meisten modernen Browser unterstützen die Historie -API, stellen Sie jedoch sicher, ob Sie ältere Umgebungen unterstützen.
Zusammenfassung
- Verwenden Sie
pushState()
um einen neuen Verlaufseintrag hinzuzufügen. - Verwenden Sie den aktuellen Eintrag
replaceState()
. - Hören Sie sich
popstate
an, um auf die Rück-/Vorwärtsnavigation zu reagieren. - Verwalten Sie den UI -Zustand Ihrer App separat und synchronisieren Sie ihn mit der URL.
Mit der History -API können Sie reibungslose, dynamische Navigationserlebnisse erstellen, die sich nativ anfühlen - alles ohne vollständige Seite Nachladen.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die History -API in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



AstackinjavaScriptisimplementedusedanArraytofollowthelastin, Firstout (LIFO) Prinzip.2.ThecoremethodSarepush () toaddanelementtothetopandpop () toremovethetopelement.3

Erstellen einer filterbaren Galerie erfordert die Einrichtung der HTML -Struktur, das Hinzufügen von JavaScript -Filterlogik, die optional verbesserte Animationseffekte und die Gewährleistung eines reaktionsschnellen Designs. 1. Verwenden Sie Schaltflächen mit Datenfilterattributen und Galerieprojekten mit Datenkategorie-Attributen zum Erstellen von HTML. 2. Hören Sie die Schaltfläche an, klicken Sie auf Ereignisse über JavaScript, Switch-Schaltflächenstatus und Steuerungsprojektanzeige oder Versteck gemäß Data-Filter-Wert. 3. Durch CSS -Übergang oder JQuery's Fadein/Fadeout kann eine glatte Animation erreicht werden. 4. Verwenden Sie das Bootstrap Grid-System, um das reaktionsschnelle Layout automatisch zu realisieren, und ermitteln Sie schließlich einen frei von Plug-in-freien und Bootstrap-basierten Sound.

Verwenden Sie die: Fokus-Pseudo-Klasse Fokus, um Elementen, die den Fokus zu verbessern, Styles hinzuzufügen, um die Zugänglichkeit und die Benutzererfahrung zu verbessern. 2. Die grundlegende Syntax legt den Fokuszustandsstil für den Selektor fest: Fokus, der häufig für Formulare, Links und Elemente mit Tabindex verwendet wird; 3. Die Standardfokus -Umriss sollte nicht entfernt werden, und die Sichtbarkeit sollte durch benutzerdefinierte Umriss und hohe Kontrastfarben gewährleistet werden. 4.. Sie können Tabindex zu Elementen wie benutzerdefinierten Schaltflächen hinzufügen und den Fokusstil anwenden; 5. Sie können Pseudoklassen wie: Hover,: ungültig und: in den Fokus, um komplexe Wechselwirkungen zu erreichen, kombinieren; 6. Es wird empfohlen zu verwenden: Fokus aufmerksam, um die Anzeige von Fokusstilen zu realisieren, wenn Sie nur auf der Tastatur navigieren, die Benutzererfahrung verbessern; 7. Immer

Der ternäre Operator in JavaScript wird verwendet, um eine einfache Bedingungsbeurteilung zu implementieren, und seine Syntax ist Bedingung? ValueIifTrue: ValueIffAlse; 1. für Szenarien anwendbar, in denen eine einfache Auswahl zwischen zwei Werten, z. B. variabler Zuordnung oder Funktionsrückgabewert; 2. Es kann in Ketten verwendet werden, um mit mehreren Bedingungen umzugehen, aber übermäßige Verschachtelung verringert die Lesbarkeit. 3.. Es sollte für Operationen vermieden werden, die Nebenwirkungen wie Funktionsaufrufe enthalten, und die Anweisung if ... sonst sollte zu diesem Zeitpunkt verwendet werden. Die korrekte Verwendung kann den Code prägnanter und klarer machen.

Um die Tasten in Bootstrap auszurichten, müssen Sie sein Gittersystem und die praktische Klasse verwenden. 1. Horizontaler Zentrierung Schaltfläche: Fügen Sie den übergeordneten Container Text-Center-Klasse hinzu; 2. Ausrichten Sie mehrere Tasten nebeneinander: Verwenden Sie D-FLEX- und GAP-2-Klassen; 3.. Rechtsausrichtung: Verwenden Sie D-FLEX in Kombination mit Justify-Content-End; V. 5. Tasten in der Form ausrichten: Überein mit dem Netzsystem über die Offset -Klasse ausrichten; 6. Vertikale Stapelschaltflächen: Verwenden Sie D-FLEX- und Flex-Säulen-Klassen; Wickeln Sie immer Tasten mit Containern, verwenden Sie die Gap -Klasse, um einen konsistenten Abstand zu gewährleisten, und implementieren Sie sie in Kombination mit Responsive -Klassen

Holen Sie sich zunächst den API -Taste von GoogleMaps und stellen Sie das Skript korrekt vor, um sicherzustellen, dass die InitMap -Abruffunktion übereinstimmt. 2. Verwenden Sie das Bootstrap-Raster, um einen Kartenbehälter mit fester Höhe und 100% Breite zu erstellen, z. B. Col-12, um das reaktionsschnelle Layout sicherzustellen. 3. Definieren Sie die InitMap -Funktion in JavaScript, um die Karte zu initialisieren und die Mittelpunkt-, Zoomebene- und optionale Markierungen zu setzen. 4. Stellen Sie sicher, dass der Kartenbehälter reaktionsmäßig über CSS oder Inline -Stile skaliert wird, um die Verwendung fester Pixelbreiten zu vermeiden. 5. Zu den häufigen Problemen gehören API -Schlüsselfehler, Containerhöhe ohne Container oder unsachgemäße Verwendung von Bootstrap -Klassen, und Sie müssen nacheinander nachdenken, um sicherzustellen, dass die Karte normal geladen und angezeigt wird. Die letzte Karte reagiert korrekt und verbreitet sich auf allen Geräten auf

Verwenden Sie HistoryAPI, um aktualisierte URL-Updates und Browser-Navigationsunterstützung in einseitigen Anwendungen zu erhalten. 1. Zugriff auf die Geschichte über das Fenster.History und verwenden Sie die Geschichte. 2. verwenden Sie Pushstate (Status, Titel, URL), um dem Verlaufsstapel neue Einträge hinzuzufügen, die URL zu ändern und die Statusdaten zu verknüpfen, ohne die Seite zu aktualisieren. 3.. Verwenden Sie den Austausch (Status, Titel, URL), um die aktuellen historischen Einträge zu ersetzen, um wiederholte Vorgänge zu vermeiden, wenn der Benutzer zurückbackt. 4. Hören Sie sich das Popstate -Ereignis an und folgen Sie dem Vorabend, wenn der Benutzer auf die Vorder- und Rück- und Rückschaltflächen klickt.

AnabsoluteurlinCludesthefulwebaddresswithProtocolanddomain, whilearelativeurlspecifiesapathrelativetothe
