2011-04-23 6 views
42

Eksperymentowałem z modułem localstorage dla Backbone.js (https://github.com/jeromegn/Backbone.localStorage). Jak rozumiem, powoduje to przeciążenie Backbone.sync, a tym samym powstrzymuje kręgosłup przed popychaniem na serwer (?). Idealnie, chciałbym przekazać moje dane z powrotem do serwera i utrzymywać je lokalnie w trybie online i po prostu używać localstorage w trybie offline (wiesz, idealna aplikacja). Nie znalazłem jeszcze żadnej dokumentacji.Backbone.js jest w stanie zrobić odpoczynek i localstorage?

Czy Backbone.localStorage jest częścią tego? Czy ktoś był w stanie zbudować ten scenariusz? Jak to się robi? (Proszę, powiedz, że nie muszę wykonywać własnych zdjęć.)

Dzięki.

Odpowiedz

45

Backbone.localStorage to plik zewnętrzny, którego można użyć, który zastępuje Backbone.Sync.

Można użyć funkcji wykrywania prostych funkcji, aby określić, czy użytkownik jest w trybie offline, czy online, a następnie asynchronicznie załadować plik Backbone.localStorage.js, jeśli są one niedostępne.

Jeśli to konieczne, możesz również przekazać modelom i kolekcjom konkretną wersję Backbone.sync.

Jeśli chcesz wykonać obie jednocześnie, musisz napisać własną wersję Backbone.sync, która łączy się z serwerem i wywołuje localStorage.

Najprostszym sposobem, aby to zrobić, to po prostu zdefiniować

Backbone.sync = function() { 
    originalSync.apply(this, arguments); 
    localStorageSync.apply(this, arguments); 
} 

Edit:

Jak wspomniano w komentarzach, jeśli używać najnowszej kręgosłup localStorage plugin następnie można wykonać następujące

Backbone.sync = function Sync() { 
    Backbone.ajaxSync.apply(this, arguments); 
    return Backbone.localSync.apply(this, arguments); 
}; 
+0

To ma sens. Myślę, że posiadanie obu, a następnie upuszczenie oryginału w trybie offline, ma największy sens (dzięki za uwzględnienie go). Czy masz osobiste doświadczenia związane z tymi scenariuszami? – LeRoy

+2

@LeRoy nie, ale ma pewne wykrywanie cech wokół 'originalSync', aby sprawdzić, czy twój internetowy ma sens. Upewnij się także, aby prawdziwy serwer był bardziej "autoryzowany", a następnie offline. I umieść system monitorujący zmiany wprowadzone w trybie offline i przesyłaj je jako wsad do serwera. – Raynos

+0

Czy istnieje jakaś przykładowa aplikacja, do której mogę się odwoływać do lokalnej pamięci masowej i synchronizacji offline w tym samym czasie. – Pankaj