Zauważyłem, że YouTube nie przeładowuje się ponownie po kliknięciu linku/wideo w ich witrynie. Jeśli zdefiniujesz zmienną w konsoli, zobaczysz, że będzie się ona utrzymywać.Co strony internetowe takie jak YouTube używają do zmiany adresu URL bez wywoływania popstate lub beforeunload?
Ale ani popstate
ani beforeunload
nie zostaną zwolnieni. Jak więc Youtube to osiąga? I jak mogę wykryć, że zmiana adresu URL bez ustawiania zegara stale sprawdza pasek adresu URL.
window.onpopstate = function(event) {
console.log('popstate test!')
return "test"
}
window.onbeforeunload = function(event) {
console.log('beforeunload test!')
return "test"
}
Nie szukam tylko rozwiązania YouTube, szukam ogólnego rozwiązania, które obejmie technologię, z której korzysta YouTube.
gdy używają ajaxa, nie ma wpisu w historii ani zdarzenia beforeunload. – Blauharley
Ajax, aby zmienić adres URL paska adresu? – Forivin
czy naprawdę zmieniają adres URL całkowicie? O ile widziałem to, że zmieniły one flagę zapytania (? v = 6z-DCbOLYzc) na końcu: https://www.youtube.com/watch?v=6z-DCbOLYzc – Blauharley