wiem, że to jest dość przestarzały pytanie, ale doszedłem do rozwiązania problemów z przyciskiem tyłu/do przodu podczas przełączania między standardowym stronie i stronie Historia państw.
Scenariusz: użycie HTML5 Historia (lub history.js plugin) na zbiorze stron Wtedy inne strony musimy rzeczywistych obciążeń, aka standardowej strony (nie pytajcie dlaczego, ale istnieją pewne przypadki użycia, że ta może być potrzebny)
Po przejściu ze strony Stan historii i wykonaniu rzeczywistego obciążenia na stronie standardowej. Nie możesz wejść w BACK: zmienia adres URL, ale nie ładuje strony - uruchamia tylko zmianę statyczną; które zakładam jest kwestią oryginalnego postu. Moim osobistym zdaniem jest to błąd przeglądarki (wszystkie przeglądarki mają problem), ponieważ przeglądarka powinna wiedzieć, że strona, na której się znajdujesz, została ponownie załadowana poza stronę stanu historii.
Naprawiłem to za pomocą czegoś naprawdę prostego: Odsłuchanie zdarzenia w stateczange i poinformowanie przeglądarki, aby odświeżyło się po uruchomieniu. W ten sposób nie obchodzi mnie, czy wrócą oni z tej strony. Jeśli przeglądarka myśli, że stan się zmienia (linki nie wywołują zdarzenia z ustawieniami statystyk), tylko powrót/do przodu na stronie stanu Historii uruchamia to wydarzenie, więc rozwiązuje problem.
kod, za pomocą wtyczki jQuery + History.js:
$(window).on('statechange', function() {
window.location.reload();
});
Jeśli to nie ma sensu, jesteś prawdopodobnie nie mają tego problemu. Zauważyłem to jednak na wielu stronach, które używają HTML 5 History (nawet pinterest.com ma ten problem, jeśli przeładowujesz, gdy na modalnym obrazie, a następnie spróbujesz wrócić).
Mamy nadzieję, że jeśli masz ten problem, znajdziesz tę odpowiedź i mają ogromną ulgą :)
myślałem podobną logiką, jednak stateChange zostanie uruchomiony, gdy problem pushState i kiedy tyłu/do przodu jest wciśnięty, co stwarza nieskończoną pętlę przeładowaniem. – Dean
Rzeczywiście, ogromna ulga. Już miałem się poddać. –