Ich habe gelesen und nach Vor- und Nachteilen zwischen replaceState()
& gesucht pushState()
. Lesen Sie auch Mozillas Artikel und diesen interessanten Test, aber mir sind die Unterschiede noch unklar.
Möchte jemand erklären, worin sie sich unterscheiden?
javascript
html
Rikard
quelle
quelle
Antworten:
replaceState()
wird ändern Sie die URL im Browser (dh. die Zurück - Taste drücken , wird Sie nicht zurück nehmen)pushState()
ändert die URL und behält die alte im Browserverlauf bei (dh durch Drücken der Zurück-Taste gelangen Sie zurück)quelle
Von Ihrem Link
Wenn Sie den Verlaufseintrag einfach aktualisieren möchten, verwenden Sie
replaceState()
anderweitig usepushState()
, wodurch der alte Eintrag beibehalten und ein neuer erstellt wird. Sie sind ähnlich, haben jedoch unterschiedliche Auswirkungen. Dies hängt davon ab, ob Sie neue Verlaufseinträge ersetzen oder erstellen möchten.Stellen Sie sich vor, ich verteile ein Kartenspiel, indem ich eine Karte übereinander lege (offen), und Sie können nur die oberste Karte auf den Stapel nehmen (dh die letzte Karte, die ich ausgeteilt habe). Nehmen wir an, ich lege einen Jack of Hearts auf den Stapel. Nun zur nächsten Karte, wenn ich sie benutze
replaceState
, also nehme ich den Jack of Hearts ab und lege die nächste Karte auf. Die Anzahl der Karten ist gleich, da wir gerade die oberste Karte ersetzt haben. Wenn ichpushState
stattdessen verwendet hätte, hätte ich die nächste Karte auf den Jack of Hearts gelegt (also existieren jetzt beide auf dem Stapel und der Stapel ist eine Karte höher).Tauschen Sie die Karten in Analogie mit URLs aus und so wird der URL-Verlauf geändert.
quelle