Ho un'app basata su parse.com con funzionalità offline in cui l'intero database è memorizzato localmente (localStorage su client Web e database locale di parse.com su client mobili). Sto cercando una soluzione di design per aggiornare in modo efficiente il database locale con le ultime modifiche nel database remoto. Le opzioni che mi veniva in mente sono:Come aggiornare il database di parse.com in modo incrementale?
diario con il codice di trigger. Imposta i trigger del codice cloud (afterSave, afterDelete) per ogni oggetto e aggiungi un log alla tabella del journal ogni volta che un oggetto è stato salvato o distrutto. I client interrogheranno la tabella per gli aggiornamenti e si ricorderanno di
lastUpdateTime
per le richieste successive.Pro: a) possiamo avere un riepilogo molto dettagliato di ciò che è stato cambiato e di chi ha apportato la modifica. b) tutti i cambiamenti sono immediatamente disponibili per altri client (ad esempio, chiamata tabella di polling per le notifiche in tempo reale con piccoli ritardi)
Contro: a) ci possono essere troppe voci nella tabella
diario con lavoro in background. Imposta un processo in background che interroga tutte le tabelle entro il
updatedAt
, popola la tabella del journal e salva lolastUpdateTime
per le richieste successive.Pro: a) meno voci nella tabella ufficiale
Contro:? A) sono disponibili con ritardo imprevedibile (non adatto per le notifiche in tempo reale) b) non possono tenere traccia delle eliminazioni cambiamenti, c'è ancora la necessità di installazione di un altro tavolo per tenere traccia cancella o implementare soft-delete c) meno dettagli nel registro (ad esempio, quando l'oggetto è stato creato da un utente e cancellato da un altro utente, non sapremo chi ha creato un oggetto)
Nessun ufficiale. Tutti i client interrogano tutte le tabelle entro il
updatedAt
e memorizzanolastUpdateTime
per le richieste successive.Pro: a) facile da implementare, b) le modifiche sono immediatamente disponibili
Contro: a) lo stesso problema con le eliminazioni come in , b) inefficiente (credo che l'interrogazione di oltre 20 tavoli da tutti i client non è una buona idea
Abbiamo anche un utente in cui l'utente può guardare attraverso l'attività recente (che ha cambiato che cosa), così mi tipo di magra verso il numero approccio, ma la dimensione potenziale del tavolo mi sta preoccupando
Stai usando il perno di analisi? https://parse.com/tutorials/using-the-local-datastore –
Sei limitato a qualsiasi libreria o sei aperto all'utilizzo di javascript nativi? –
@RichardGrant non sono limitato a nessuna libreria – Dziamid