Inhaltsverzeichnis
1. Verständnis window.history . Historie
2. Verwenden Sie pushState() um einen neuen Eintrag hinzuzufügen
3.. Verwenden Sie replaceState() um den aktuellen Eintrag zu ändern
4. Hören Sie sich popstate -Events für die Navigation an
5. Praktisches Beispiel: Einfache Spa -Navigation
6. Best Practices und Gotchas
Zusammenfassung
Heim Web-Frontend Front-End-Fragen und Antworten So verwenden Sie die History -API in JavaScript

So verwenden Sie die History -API in JavaScript

Aug 31, 2025 am 05:08 AM

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.

So verwenden Sie die History -API in JavaScript

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.

So verwenden Sie die History -API in JavaScript

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.

So verwenden Sie die History -API in JavaScript

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.

So verwenden Sie die History -API in JavaScript

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 von pushState oder replaceState erstellt wurden) aus. Nach replaceState 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 und replaceState 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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Stock Market GPT

Stock Market GPT

KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist ein Stapel in JavaScript? Was ist ein Stapel in JavaScript? Aug 30, 2025 am 05:30 AM

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

So erstellen Sie eine filterbare Galerie in Bootstrap So erstellen Sie eine filterbare Galerie in Bootstrap Aug 22, 2025 am 11:42 AM

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.

So verwenden Sie die CSS: Fokus-Pseudoklasse Fokus So verwenden Sie die CSS: Fokus-Pseudoklasse Fokus Aug 22, 2025 am 11:00 AM

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

So verwenden Sie den ternären Operator in JavaScript So verwenden Sie den ternären Operator in JavaScript Aug 27, 2025 am 02:37 AM

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.

So richten Sie die Tasten in Bootstrap aus So richten Sie die Tasten in Bootstrap aus Aug 31, 2025 am 01:10 AM

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

So integrieren Sie Google Maps mit Bootstrap So integrieren Sie Google Maps mit Bootstrap Sep 05, 2025 am 05:08 AM

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

So verwenden Sie die History -API in JavaScript So verwenden Sie die History -API in JavaScript Aug 31, 2025 am 05:08 AM

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.

Was ist der Unterschied zwischen einer absoluten und einer relativen URL in HTML? Was ist der Unterschied zwischen einer absoluten und einer relativen URL in HTML? Sep 16, 2025 am 07:57 AM

AnabsoluteurlinCludesthefulwebaddresswithProtocolanddomain, whilearelativeurlspecifiesapathrelativetothe

See all articles