2010-11-17 8 views
5

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.

Odpowiedz

5

Istnieje zdarzenie "hashchange", które ma zostać zaimplementowane w HTML5. Nie jestem pewien, jak dobre wsparcie jest teraz ... IE8 obsługuje to i wydaje mi się, że Mozilla ma własną implementację w najnowszej wersji. Poza tym nic nie obawiam się. Sprawdzanie exery x ms jest sposobem, w jaki wszyscy to robią.

+1

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

0

Może this to ciekawa lektura, to gotowe rozwiązanie dla dokładnie tego, co robisz. i nie, aż hashchange jest prawidłowo obsługiwany w każdej przeglądarce (czytaj: to znaczy), trzeba będzie ręcznie sprawdzić

0

korzystać z tej wtyczki: http://www.asual.com/jquery/address/

Wtyczka jQuery Adres zapewnia potężne możliwości precyzyjne linki i pozwala tworzenie unikalnych adresów wirtualnych, które mogą wskazywać na sekcję witryny lub stan aplikacji. Umożliwia on szereg ważnych funkcji, w tym:

  • Zakładki w przeglądarce lub stronie społecznej
  • Wysyłanie łącza za pośrednictwem poczty elektronicznej lub komunikatora
  • Znalezienie konkretnej treści przy użyciu głównych wyszukiwarek
  • Wykorzystując historię przeglądarki i przeładuj przyciski
+0

Ja wyraźnie powiedziałem: "Proszę, nie kieruj mnie do gotowych rozwiązań, chyba że wiesz, że są oparte na innym mechanizmie." – Andrea

+2

Przykro mi, włoski to mój pierwszy język. Z tego co rozumiem, wygląda na to, że szukasz różnych mechanizmów. Myślę, że powinno to brzmieć: "Proszę, nie kieruj mnie do gotowych rozwiązań, chyba że wiesz, że NIE są oparte na innym mechanizmie". Właściwie to myślę, że przeoczam to zdanie. –

+0

Tam głosowałem, żebyś zrównoważył jego niegrzeczne zachowanie. :) –

Powiązane problemy