Mam pytanie dotyczące ładowania i buforowania odległych obiektów za pomocą Ember. Zajmuję się tworzeniem aplikacji Ember, która wykorzystuje pamięć masową po stronie serwera za pośrednictwem interfejsu API REST. Niektóre z pobieranych danych rzadko się zmieniają, więc pobieranie ich z serwera za każdym razem, gdy aplikacja się ładuje, jest niepotrzebne. Jest to jednak również pytanie dotyczące aplikacji, które muszą pracować w trybie offline i nadal zapisywać dane na serwerze.Buforowanie danych zdalnych w pamięci lokalnej za pomocą EmberData
Ember Data ma wbudowaną kartę pamięci do utrzymywania modeli za pośrednictwem interfejsu API REST, a także jest an adapter for Local Storage (jak wskazał Ken poniżej). Problem (jeśli jest to problem) polega na tym, że model ma tylko jedną kartę pamięci i nie istnieje żadna koncepcja buforowania pobranych modeli innych niż przechowywanie ich w pamięci.
Znalazłem podobne żądania w tym Ember wishlist iw komentarzach do tego talk by Tom Dale, ale nie znalazłem żadnych wskazań, że byłaby to istniejąca funkcja w Ember.
Mam dwa pytania (pierwszy będąc ważny):
- Jaki jest najlepszy sposób - dziś - wdrożenie modeli buforowane w pamięci lokalnej i synchronizowania ich z odległych danych, ile potrzeba?
- Czy jest to funkcja zaplanowana do uwzględnienia w Ember, czy przynajmniej coś, co zdaniem opiekunów powinno zostać ostatecznie dodane?
Kiedy przychodzi do 1), mogę myśleć o kilka strategii:
a) rozszerzyć istniejącą kartę i dodać niestandardową Mechanizm zdalnego Sync:
App.Store.registerAdapter('App.Post', DS.LSAdapter.extend({
// do stuff when stuff happens
}));
b) utrzymuje oddzielne klasy modeli - jeden zestaw dla obiektów zdalnych i jeden zestaw dla obiektów lokalnych - i w razie potrzeby zsynchronizuj między nimi. Ze standardowym przypadku Todo:
RemoteTodo –*sync*– Todo
|
UI
jestem trochę nadzieję, że to jest prawdziwe pytanie noobem i że nie jest to dobry wzór ustalony dla tego produktu.
Zaktualizowane: Znaleziono this similar question. Ma dobrą odpowiedź, ale jest to trochę teoretyczne. Myślę, że potrzebuję kilku praktycznych wskazówek lub wskazówek do przykładowych wdrożeń.
Dzięki za wskazówki - I rzeczywiście th Powinien, że adapter był częścią właściwego Ember Data. Odpowiednio zaktualizuję moje pytanie.To naprawdę nie rozwiązuje mojego problemu, ponieważ szukam dobrego sposobu na użycie backendu REST z buforowaniem LS - nie przechowuj moich danych wyłącznie w LS. –
Możesz użyć innego adaptera w tej samej aplikacji, aby przypisać wybrany adapter do określonego modelu. – ken
Yup. Tak właśnie wdrożysz b) w moim pytaniu. Nadal zastanawiam się nad najlepszym podejściem. –