CodeBlanks Logo Icon CodeBlanks

pushState

JavaScript kursu · İleri seviye · Ders 79/100

pushState ile URL'i değiştirip sayfa yeniden yüklenmeden geçmişe yeni kayıt eklemeyi öğrenirsin.

pushState nedir?

history.pushState(state, unused, url) oturum geçmişine yeni bir kayıt ekler ve adres çubuğundaki URL'i değiştirir; ama sayfayı yeniden yüklemez.

history.pushState({page: 'about'}, '', '/about');

İlk parametre kayıtla saklanan durum nesnesidir; daha sonra event.state ile geri alırsın. İkinci parametre başlık için ayrılmıştır ama tarayıcılar yok sayar, genelde boş dize verilir. Üçüncü parametre yeni URL'dir ve aynı kökene (same-origin) ait olmalıdır.

Durum, başlık ve URL

Durum nesnesi (state) kayıtla birlikte saklanan ve serileştirilebilen bir değerdir: nesne, dizi, sayı veya dize. Bunu sonra history.state veya event.state ile okursun.

const state = { page: 'profile' };
history.pushState(state, '', '/profile');

URL aynı kökene ait olduğu sürece göreli (relative) yol da olabilir. Farklı bir kökene gitmek SecurityError fırlatır.

Uygulama pushState ile yeni kayıt ekle

page değişkenine 'profile' değerini ata. { page: page } durumuyla, boş başlık ve '/profile' URL'i ile history.pushState çağır.

Örnek çözümü göster
const page = 'profile';
history.pushState({ page: page }, '', '/profile');

Kendini test et

  1. history.pushState ne yapar?

    • Geçmişe yeni kayıt ekler ve URL'i değiştirir, sayfa yeniden yüklenmez
    • Sayfayı yeniden yükler
    • Geçmiş kaydını siler
    • Sayfayı yeniden boyutlandırır
    Cevabı göster

    Geçmişe yeni kayıt ekler ve URL'i değiştirir, sayfa yeniden yüklenmez — Doğru! pushState hem yeni kayıt ekler hem de URL'i değiştirir.

  2. pushState çağrısını tamamla

    const state = { page: 'profile' };
    ____;
    Cevabı göster
    const state = { page: 'profile' };
    history.pushState(state, '', '/profile');
  3. pushState kavramlarını eşleştir

    pushState
    yeni kayıt ekler
    state
    kayıtla saklanan veri
    url
    adres çubuğundaki yol
    unused
    başlık parametresi

İleri seviye bölümündeki tüm dersler