Próbuję zaimplementować przyzwoitą nawigację w aplikacji AJAX. To, co teraz robię, jest następujące:Sprytny sposób na zarządzanie historią przeglądarki
- Za każdym razem, gdy użytkownik kliknie łącze AJAX, wykonywane jest odpowiednie wywołanie, a skrót jest zmieniany.
- Po załadowaniu nowej strony sprawdzam, czy jest obecny skrót i wykonuję odpowiednie wywołanie AJAX, aby zaktualizować stronę. Dzięki temu zakładki będą działać zgodnie z oczekiwaniami.
- Co 500ms Sprawdzam, czy hash został zmieniony i wykonać odpowiednie wywołanie AJAX. Dotyka to użytkowników naciskających przyciski wstecz/przewijania, ale z opóźnieniem.
Trzeci punkt jest nieco denerwujący: wolałbym nie mieć limitu czasu co 500ms, aby sprawdzić hasz, ponieważ przez większość czasu pozostanie on taki sam.
Czy istnieje lepszy sposób zarządzania tym? Nie mogę wymyślić żadnej alternatywy, ale może czegoś brakuje.
Proszę, nie kierujcie mnie do gotowych rozwiązań, chyba że wiedzą, że są oparte na innym mechanizmie.
Przeglądarki IE8, Firefox 3.6, Chrome 4 i nowsze obsługują zdarzenia hashchange. Biblioteka zamknięcia Google (http://closure-library.googlecode.com/svn-history/r8/trunk/closure/goog/docs/class_goog_History.html) i YUI 3 (http://developer.yahoo.com/yui/ 3/history /) wykorzysta to wydarzenie, jeśli będzie to możliwe, w przeciwnym razie zostanie przywrócone do schematów sondowania. – ide