Czytałem i szukałem zalet / wad między replaceState()
& pushState()
. Przeczytaj także artykuł Mozilli i ten interesujący test, ale nadal nie jest dla mnie jasne różnice.
Czy ktoś chce wyjaśnić, czym się różnią?
javascript
html
Rikard
źródło
źródło
Odpowiedzi:
replaceState()
będzie zmienić adres URL w przeglądarce (np. naciskając przycisk wstecz nie zabierze Cię z powrotem)pushState()
zmieni adres URL i zachowa stary w historii przeglądarki (np. naciśnięcie przycisku Wstecz spowoduje powrót)źródło
Z twojego linku
Jeśli chcesz po prostu zaktualizować wpis historii, użyj
replaceState()
inaczej użyjpushState()
, co zachowa stary wpis i utworzy nowy. Są podobne, ale oba mają różne efekty, więc zależy to od tego, czy chcesz zastąpić lub utworzyć nowe wpisy historii.Pomyśl o tym tak, jakbym rozdawał talię kart, kładąc jedną kartę na drugiej (odkrytą) i możesz wziąć tylko górną kartę ze stosu (tj. Ostatnią kartę, którą rozdałem). Powiedzmy, że położyłem na stosie Jack of Hearts. Teraz kolejna karta, jeśli używam
replaceState
, więc zdejmuję tę waletkę kier i wkładam następną. Liczba kart jest taka sama, ponieważ właśnie wymieniliśmy górną kartę. GdybympushState
zamiast tego użył , położyłbym następną kartę na wierzchu waleta kier (więc teraz obie istnieją na stosie, a stos jest o jedną kartę wyższy).Zamień karty w analogii z adresami URL i tak modyfikowana jest historia adresów URL.
źródło