2010-03-01 7 views
23

Szukałem w bibliotekach JQuery dla skrótu adresu URL, ale nie znalazłem żadnego, który byłby dobry. Istnieje "wtyczka do historii", ale wszyscy wiemy, że jest ona wadliwa i nie jest elastyczna.Jaka jest najlepsza biblioteka do wykonania skrótu adresu URL/historii w JQuery?

Załaduję moje strony wewnątrz elementu div. Potrzebuję sposobu na zrobienie wstecz/do przodu wraz z hashowaniem adresu URL.

mydomain.com/#home 
mydomain.com/#aboutus 
mydomain.com/#register 

Jaka jest najlepsza biblioteka, która poradzi sobie z tym wszystkim?

Odpowiedz

25

Niedawno obejrzałem 3 różne wtyczki - jquery history plugin, history i jQuery BBQ.

Wszystkie były dość trudne do skonfigurowania, ja działałem jQuery.History, ale nadal miałem problemy z IE7. Więc zmieniłem na BBQ i działało dobrze we wszystkich naszych docelowych przeglądarkach (IE6, IE7, IE8, Fx3).

Dlatego polecam wtyczkę jQuery BBQ.

Edytuj: here's a blog post Właśnie napisałem, który demonstruje jQuery BBQ z kaskadowymi rozwijanymi listami.

-4

AFAIK, wszystkie wtyczki Historia zrobić to samo:

setInterval(function() { 
    if(theHashChanged) { 
     someFunction(oldHash,newHash); 
    } 
}, 500/*whatever*/); 

to dość rdzeń nim (przeglądarka minus hacki do dodawania wpisów w historii bez klikania łącza, etc.). Zawsze będzie to miało wiele błędów, ponieważ jest to trochę hack i nie ma interfejsu API dla przeglądarek obsługujących zmiany w historii.

Co więcej, wrażenia użytkownika z tego rodzaju rzeczy nie są zbyt dobre. Użytkownicy nie rozumieją, kiedy muszą kliknąć czterokrotnie przycisk Wstecz, aby wyjść z tej strony.

+1

-1: Wcale nie pomocny. A od kiedy użytkownicy oczekują, że przycisk "z powrotem" zabierze ich ze strony? Czy surfujesz tylko w witrynach flashowych? – nikow

+1

@nikow jest oparty na moim doświadczeniu z dużą, publiczną witryną. Tylko dlatego, że możesz zaimplementować coś takiego, nie znaczy, że powinieneś. Szczerze mówiąc nie mogę myśleć o jednej witrynie, w której ta funkcja jest bardziej pomocna niż irytująca. – noah

+1

@nikow - "od kiedy użytkownicy oczekują, że przycisk" wstecz "spowoduje ich usunięcie ze strony?" Odkąd powiedziałbym, że najpierw wprowadziłem przeglądarkę internetową i przeglądarkę internetową;). Zwykłą funkcją przycisku wstecz jest oczywiście przejście z bieżącej strony na poprzednią stronę. –

0

Miałem szczęście z reallysimplehistory (z domu dhtmlHistory). Nie jest to specyficzne jQuery, ale działa w IE, firefox i webkit i nie wymaga wiele konfiguracji.

0

Być może wypróbuj tę wtyczkę jQuery History: http://www.balupton.com/sandbox/jquery-history/demo/ Zapewnia obsługę wielu przeglądarek, wiązanie do skrótów, przeciążanie skrótów, cała reszta.

Istnieje również rozszerzenie Ajax dla niej, pozwalając łatwo uaktualnić stronę do właściwej aplikacji Ajax: http://www.balupton.com/sandbox/jquery-ajaxy/demo/

Jest to rozwiązanie wybierane przez takich miejsc jak http://wbhomes.com.au/ i http://gatesonline.com.au/stage/public/

Ogólnie jest dobrze udokumentowane, obsługiwane i bogate w funkcje. To także wygrał pytanie o nagrodę tutaj How to show Ajax requests in URL?

1

Czy próbowałeś adresu jQuery? Od Asual, chłopaków, którzy stworzyli SWFAdress. Asual - jquery Address

Wtyczka jQuery Address zapewnia potężne możliwości dokładnego łączenia i pozwala tworzyć unikalne adresy wirtualne, które mogą wskazywać na sekcję witryny lub stan aplikacji.

+0

Próbowałem tej wtyczki i miało problemy z zarejestrowaniem zdarzenia zmiany. – Chev

1

History.js jest dobrze udokumentowany/obsługiwany i obsługuje wszystkie przeglądarki.

https://github.com/browserstate/history.js

Z witryny:

History.js wdzięcznie obsługuje HTML5 History API/państwowe (pushState, replaceState, onPopState) we wszystkich przeglądarkach. W tym kontynuacja obsługi danych, tytułów, replaceState. Obsługuje jQuery, MooTools i prototyp. W przypadku przeglądarek HTML5 oznacza to, że możesz zmienić adres URL bezpośrednio, bez potrzeby używania skrótów. Dla przeglądarek HTML4 nastąpi powrót do używania starej funkcji onhashchange .

Powiązane problemy