replaceState()& Arasındaki avantajları / dezavantajları okuyup araştırıyorum pushState(). Ayrıca Mozilla'nın makalesini ve bu ilginç testi de okuyun , ancak yine de farklar bana açık değil.
Neyin farklı olduğunu açıklamak isteyen var mı?
replaceState()& Arasındaki avantajları / dezavantajları okuyup araştırıyorum pushState(). Ayrıca Mozilla'nın makalesini ve bu ilginç testi de okuyun , ancak yine de farklar bana açık değil.
Neyin farklı olduğunu açıklamak isteyen var mı?
Yanıtlar:
replaceState()olacaktır değiştirmek tarayıcıda URL'yi (yani. geri düğmesine basarak geri almayacağız)
pushState() URL'yi değiştirir ve eskisini tarayıcı geçmişinde tutar (yani, geri düğmesine basmak sizi geri götürür)
Bağlantınızdan
history.replaceState (), tam olarak history.pushState () gibi çalışır, tek farkı, replaceState () öğesinin yeni bir giriş oluşturmak yerine geçerli geçmiş girişini değiştirmesidir.
replaceState (), bazı kullanıcı eylemlerine yanıt olarak geçerli geçmiş girişinin durum nesnesini veya URL'sini güncellemek istediğinizde özellikle yararlıdır.
Sadece geçmiş girişini güncellemek istiyorsanız , eski girişi koruyacak ve yeni bir tane oluşturacak replaceState()şekilde aksi takdirde kullanın pushState(). Benzerler ancak her ikisinin de farklı etkileri var, bu nedenle değiştirmek veya yeni geçmiş girişleri oluşturmak isteyip istemediğinize bağlı.
Bunu, bir kart diğerinin üzerine koyarak (açık) bir deste kart dağıtıyormuşum gibi düşünün ve yalnızca yığındaki en üst kartı (yani, dağıttığım son kartı) alabilirsiniz. Diyelim ki yığına bir Jack of Hearts koydum. Şimdi bir sonraki kartı kullanırsam replaceState, o yüzden Jack of Hearts'ı çıkarırım ve sonraki kartı takarım. En üstteki kartı değiştirdiğimiz için kart sayısı aynı. Onun pushStateyerine kullansaydım, bir sonraki kartı Kupa Kızı'nın üstüne koyardım (yani şimdi ikisi de destede var ve yığın bir kart daha yüksek).
Kartları benzer şekilde URL'lerle değiştirin ve URL geçmişi bu şekilde değiştirilir.