2015-09-01 10 views
7

Ho lavorato con Ember Data e sto cercando di capire alcuni concetti. Ho un'app ad alta intensità di dati piuttosto pesante, il mio back-end ha endpoint che restituiscono molti record.In che modo Ember Data gestisce una grande quantità di record?

Quindi, in sostanza ho percorso di che hanno qualcosa di simile this.store.findAll('places') che può restituire migliaia di posti che hanno ciascuno diversi campi di testo intensive come services o description. Questa è solo una delle risorse, ce ne sono altre che gestiscono anche quella quantità di dati.

La mia preoccupazione principale è che l'app raggiunga un qualche limite o non risponda. Quindi la mia domanda è questa: in che modo Ember Data gestisce una grande quantità di record? C'è qualche pratica migliore per gestire questo tipo di scenari?

+3

La risposta a questa domanda è davvero la risposta a qualsiasi domanda su cosa fare su set di dati di grandi dimensioni sul client : impaginare i dati. –

+1

@GregBurghardt Supponendo che client e server siano in esecuzione nello stesso host (magari un'app per desktop electron con un database sqlite) in modo che la larghezza di banda non sia un problema e forse non ho bisogno di paginazione memorizzare grandi quantità di record? –

risposta

3

In che modo Ember Data gestisce una grande quantità di record?

Allo stesso modo in cui gestisce una piccola quantità di record. Non sta andando a fare qualcosa di speciale per le prestazioni se si tenta di caricare/recuperare un numero elevato di record. Devi gestirlo da solo.

Esiste una buona pratica per gestire questo tipo di scenari?

Purtroppo, no. L'impaginazione di qualche tipo è davvero l'unico modo per ottenere questo risultato. Ma come puoi vedere nel numero this thread, c'è un bel po 'di discussioni sul modo "migliore" per farlo. Ci sono adattatori e plugin creati per gestire questo scenario, oltre a un boilerplate lato server progettato per renderlo semplice. Ma in realtà non esiste un modo canonico di impaginare con Ember Data.

A mio parere, il modo migliore per gestire grandi quantità di dati è progettare un endpoint di query e implementarlo sul server, gestendo tutto da solo. Questo sarà il più personalizzato per la tua applicazione e il più facile da capire. Se sembra complicato, è perché lo è. La segmentazione/impaginazione del set di dati non è un problema semplice da risolvere, ma sicuramente si incontreranno problemi lungo il percorso. Ecco perché non esiste ancora una best practice concordata.

Aggiornamento: Javier Cadiz ha menzionato l'API JSON nei commenti, quindi ho pensato di parlarne. L'API JSON sembra essere il nuovo standard defacto per Ember Data e utilizza il metodo specifiy a pagination. Tuttavia, l'API JSON è abbastanza nuova e non è ancora ampiamente adottata. Credo che non sia stato fino a poco tempo fa che Ember Data passava all'adattatore JSON API come predefinito. L'utilizzo di questa impaginazione potrebbe richiedere per lo più di conformarsi all'intera API, non solo all'aspetto di impaginazione. (Anche se puoi sempre rubare certe idee da esso.) Per questo motivo, non sono sicuro che lo chiamerei ancora una buona pratica.

Bottom line: il modo di impaginazione dell'API JSON può essere la via del futuro, ma attualmente non è molto popolare. (Anche se questa è solo la mia opinione basata su ciò che vedo/leggo.)

+0

Le specifiche API JSON sono utili per questo problema? –

+0

Questo è un buon punto per far apparire. Aggiornerò la mia risposta con quello – GJK

+0

molto ben spiegato, grazie –

Problemi correlati