Reporting Solution in PHP / CodeIgniter - Logica lato server vs lato client

1

Sto creando un rapporto per un utente finale. Vorrebbero vedere un elenco di tutti i widget ... ma poi piace anche vedere i widget con attributi mancanti, come nomi mancanti o dimensioni mancanti.

Quindi stavo pensando di creare un metodo che restituisca i dati json contenenti tutti i widget ... e quindi di utilizzare javascript per consentire loro di filtrare i dati per i dati mancanti, invece di richiedere il database.

In definitiva, devono essere in grado di salvare tutti i "report" (versioni filtrate dei dati) all'interno di un file CSV.

Queste sono le due opzioni su cui sto riflettendo:

Design 1

Crea 3 metodi separati nel mio controller / modello come:

get_all_data()
get_records_with_missing_names()
get_records_with_missing_size()

E poi quando vengono chiamati questi metodi, vorrei visualizzare i dati sullo schermo e dare loro un pulsante per salvare in un file csv.

Design 2

Crea un metodo chiamato get_all_data () e poi, in qualche modo, dai loro strumenti nella vista per filtrare i dati JSON usando le tabelle ecc ... e poi lasciandoli salvare dei sottoinsiemi dei dati.
La realtà è che, al fine di visualizzare tutti i dati, ho ancora bisogno di massaggiare i dati, e quindi, so quali record mancano attributi. Quindi preferirei non creare metodi separati per ciascun filtro.

Non sono sicuro di come lo farei ancora ma a questo punto, vorrei conoscere alcuni pro / contro di ciascun metodo.

Grazie.

    
posta dot 22.01.2014 - 17:59
fonte

1 risposta

0

Supponendo che tu stia utilizzando Angular.JS , jQuery o allo stesso modo, consiglierei di caricare tutti i dati dal server contemporaneamente, quindi di scrivere controller in grado di filtrare tra i diversi tipi di elenchi.

Questa soluzione consente il minor carico sul server e fa fare al client la maggior parte del lavoro. Questo insieme all'idea di avere un'applicazione il cui ritardo dipende dal filtro delle macchine locali (elaborazione locale = veloce) è molto meglio che avere un'applicazione che può ritardare a causa di instabilità della rete (rete = lenta).

Detto questo, se è una quantità enorme di dati (> 1 milione di record), la migrazione della logica dal client al server può diventare ragionevole. A questo punto l'elaborazione locale potrebbe richiedere più tempo rispetto alla richiesta dei dati dal server.

    
risposta data 22.01.2014 - 20:03
fonte

Leggi altre domande sui tag