2011-01-28 19 views
19

Oceniam Backbone.js pod kątem synchronizacji danych i interfejsu w mojej aplikacji internetowej. Jednak większość wartości Backbone wydaje się polegać na korzystaniu z interfejsów RESTful. Mimo że mogę w przyszłości dodać kopię zapasową po stronie serwera, mój podstawowy przypadek użycia obejmuje przechowywanie wszystkich danych w trybie offline przy użyciu lokalnego magazynu HTML5.Korzystanie z Backbone.js offline

Czy to przesada kręgosłupa w takim przypadku? Jeśli tak, czy istnieje lepsze rozwiązanie, skupiające się wyłącznie na aktualizacji interfejsu użytkownika w przypadku zmiany danych i na odwrót? (Zajmuję się także Knockout i Javascript MVC.)

EDYCJA: Zajmuję się teraz analizą Angular.js i jQuery Data Link.

Odpowiedz

28

Backbone.js działa równie dobrze z pamięcią lokalną, jak z zapytaniami RESTful.

Jestem nauczyć po przykładzie facetem więc oto kilka linków na początek:

9

W ubiegłych tygodniach oceniłem różne rozwiązania dla scenariusza zbliżonego do twojego; będąc projektem wykonanym w moim osobistym wolnym czasie i nie będąc dobrym programistą JavaScript, wszystko, czego potrzebowałem, było czymś łatwym do nauczenia się, aby uniknąć zaczynania od zera.

Nie zaskakująco, miałem tego samego kandydata: Backbone.js, Javascript MVC i Knockout.js.

backbone.js wygranych:

  • ja nie być zobowiązane do przestrzegania konwencji lub wymienić to, co było już na miejscu
  • Mam easly hacked w swoim kodzie, aby zrozumieć, co nie wynika z dokumentacja
  • ja skutecznie ignorowane dużej ilości jego funkcji, które nie były interesujące dla mnie
  • dało akceptowalną wydajność na ruchliwych stron
  • działa

Backbone.js jest lekki, a względnie wolny od magii; prawdopodobnie użyjesz niewielkiego podzbioru tej funkcji, ale stanowi ona solidną podstawę do opracowania twojego rozwiązania.

1

Możesz również rzucić okiem na AFrameJS. Stworzyłem niezawodny proof of concept note-taking app, który działa w trybie offline przy użyciu specyfikacji HTML5 WebSQL, ale także chce utworzyć adapter wykorzystujący również localStorage. Moja osobista opinia (i jestem stronniczy) polega na tym, że używanie biblioteki MVC każdego rodzaju pomoże ci na dłuższą metę - wartość bibliotek takich jak Szkielet, Knockout i AFrame leży w ich zdolności do zmniejszenia obciążenia kognitywnego programistę, wymuszając dobre rozdzielenie obaw. Funkcje związane z danymi rezydują w modelach, wyświetlając dane znajdujące się w widokach, a klej jest przechowywany w kontrolerach.Oddzielenie tych trzech koncepcji może początkowo wydawać się pedantyczne, ale końcowym rezultatem jest kod, który jest łatwiejszy do opracowania, łatwiejszy do przetestowania, łatwiejszy w utrzymaniu i łatwiejszy do ponownego użycia. Podstawowy poradnik na temat korzystania AFrameJS można znaleźć na mojej stronie pod adresem: http://www.shanetomlinson.com/2011/aframejs-tutorial-for-noobs/