replaceState () vs pushState()


Я читал и искал преимущества / недостатки между replaceState() & pushState(). Читайте также Mozilla статьи, а это интересные тест, но до сих пор неясно мне различия.

кто-нибудь хочет объяснить, в чем они отличаются?

2 68

2 ответа:

replaceState() будет изменить URL в браузере (т. е. нажатие кнопки назад не вернет вас обратно)

pushState() изменит URL-адрес и сохранит старый в истории браузера (т. е. нажатие кнопки Назад приведет вас обратно)

из вашей ссылки

история.replaceState() работает точно так же, как история.pushState() за исключением того, что replaceState() изменяет текущую запись истории вместо о создании нового.

replaceState () особенно полезно, когда вы хотите обновить состояния объекта или URL-адрес текущей записи в ответ на некоторые действие пользователя.

если вы хотите просто хотите обновить запись в истории, используйте replaceState() в противном случае использовать pushState(), который сохранит старую запись и создаст новую. Они похожи, но оба имеют разные эффекты, поэтому это зависит от того, хотите ли вы заменить или создать новые записи истории.

подумайте об этом, как будто я раздаю колоду карт, положив одну карту поверх другой (лицевой стороной вверх), и вы можете взять только верхнюю карту в куче (т. е. последнюю карту, которую я сдал). Скажем, я положил Валет Червей на кучу. Теперь для следующей карты, если я использую replaceState, Так что я беру, что Джек Сердечки выключите и положите следующую карту. Количество карт одинаковое, так как мы только что заменили верхнюю карту. Если бы я использовал pushState вместо этого я бы положил следующую карту поверх валета червей (так что теперь оба существуют в куче, а куча на одну карту выше).

замените карты по аналогии с URL-адресами, и вот как изменяется история URL-адресов.