2012-02-01 23 views
7

Wygląda na to, że istnieje wiele bibliotek i pakietów (Crossroads.js itp.), Które obsługują tę funkcję routingu javascript, ale mam problem ze zrozumieniem scenariusza, w którym jest to cenne.dlaczego używać routingu javascript?

Czy ktoś ma ochotę zjeść zupę w sytuacjach, w których jest to przydatne?

Moje tło jest z programowaniem ASP.NET (formularze sieciowe) i niektórymi amatorskimi javascript/jquery.

+0

Czy mówisz o routingu liniowym na schemacie? –

+0

nie, bardziej na wzór funkcjonalności, jaką daje pakiet taki jak Crossroads.js. – skeej

+1

Javascript ewoluuje obecnie bardzo często, istnieje wiele trendów, które sprawiają, że jest on bardziej komfortowy na dużą skalę, ponieważ tak nie jest. Będą solidne wzorce i najlepsze praktyki, ale rzeczy takie jak crossroads.js są pionierami na nowych terenach. Pomysłowi pionierzy. – SoonDead

Odpowiedz

5

Daje możliwość obsługi zachowania klienta bez konieczności ponownego ładowania całej strony, tak jak w przypadku, gdy użytkownik zajmuje się routingiem po stronie serwera.

Otwiera możliwości bardziej responsywnych i interaktywnych projektów, ponieważ zamiast przeładowywać całą stronę za każdym razem, gdy zmieniasz trasę, możesz ponownie wydać tylko część strony, która zmienia się dla danej trasy. Jednocześnie pomaga zmniejszyć obciążenie serwera, ponieważ redukujesz komunikację z serwerem klienckim, przesyłając tylko dane wymagane do wyświetlenia strony klienta, która może go obsłużyć (renderowanie widoków itp.).

Dzięki użyciu metody backbone.js lub inne frameworki typu mvc (podobnego do tego), które możesz zredukować do serwera, aby udostępnić tylko interfejs API REST do pracy z danymi i odbierania ich bez konieczności radzenia sobie z renderowaniem, a ty przekazujesz niektóre - lub nawet najczęściej - logikę do klient.

Większość dzisiejszych aplikacji internetowych korzysta z routingu po stronie klienta - od Gmaila do Twittera.

+2

Czy możesz podać konkretny przykład? jakie są zalety w scenariuszu, w którym mam jedną aplikację strony, a każda główna sekcja ma jakiś punkt końcowy ajax odsłonięty na serwerze, który odświeża odpowiednią sekcję strony z odpowiednią treścią? – skeej

+2

Posiadanie właściwego routingu zamiast wywoływania ajaxowych odsyłaczy tu i tam oznacza, że ​​jest to dużo łatwiejsze i bardziej eleganckie dla użytkownika, ponieważ dla niego wciąż jest to dobry stary Internet z jego czystymi adresami URL, które mogą zakładać, kopiować i wklejać do dokumentów, przyjaciół itp. i łatwo uzyskać dostęp do danego stanu strony/aplikacji po prostu odwiedzając adres. Użytkownicy przyzwyczajają się coraz bardziej do interaktywnych i bezproblemowych wrażeń, a przeglądarki zyskują więcej niż wystarczająco szybko, aby je dostarczyć. –

+0

To tylko krok do przodu od ciężkich aplikacji ajaxowych i adaptacji najlepszych praktyk, których nauczyliśmy się od rozwoju po stronie serwera i ich struktur MVC. (nie pasował :)) –

1

OK- Myślę, że teraz rozumiem to lepiej. To tylko warstwa abstrakcji między wywołującym funkcję a wywoływaczem. Zamiast dołączać zakodowaną na stałe zależność między dzwoniącym a wywoływanym, można wprowadzić system routingu, który połączy te dwa oparte na pewnej konfiguracji i zapewni dodatkowe funkcje, takie jak sprawdzanie poprawności, lub wiązanie wielu odwołań z abonentem wywołującym. Następnie możesz odwoływać się do twoich działań z restrykcyjnymi uchwytami (np. "/ GetCoffee/decaf"), które również mogą być konstruowane dynamicznie (ponieważ są tylko ciągami).

Nadal zastanawiam się nad względnymi korzyściami schematu routingu w porównaniu do tworzenia niestandardowego wydarzenia.