Esiste una convenzione per la gestione di tabelle e modali

1

Ho una tabella, ogni riga può generare un modello con informazioni aggiuntive. Esiste una best practice per la visualizzazione di tonnellate di informazioni come questa?

Ho preso in considerazione le seguenti opzioni:

  1. Salva tutte le informazioni come JSON e lascia l'elemento html per JS per popolare la modale quando viene cliccato.
  2. Rendi un modal separato per ogni riga della tabella e legalo con ids
  3. Usa AJAX per recuperare i dati necessari per popolare la modale quando fai clic.

I problemi che prevedo con ciascuno (rispettivamente) sono i seguenti:

  1. Questo lascia una tonnellata metrica di dati che circolano all'interno di tag html. Lasciare JSON in un attributo di dati mi sembra intrusivo.
  2. Diventa computazionalmente costoso quando ho 200 righe di tabella e svg personalizzati e dati in ogni modal.
  3. Probabilmente è l'opzione migliore, ma non riesco a interrogare più tabelle in un enorme database per ogni riga quando potrei ottenere tutto il necessario in una singola query al caricamento della pagina.

Quindi ce l'hai. Nel grande schema delle cose, qual è il modo migliore per ottenere, salvare e rendere un sacco di dati? Dov'è la soglia (quantità) per questo tipo di "ottimizzazione" anche per la materia?

    
posta amflare 23.02.2017 - 18:07
fonte

1 risposta

3

Quale soddisfa i requisiti del tuo progetto? Lo so, "fanno tutti perché mostrano tutti un modale, duh". Ma ci sono altri vincoli, come il carico che ci si aspetta, il livello di scalabilità dei server / dell'architettura, ecc. Si tratta di capire quale opzione si adatta meglio a quei vincoli.

Se sei preoccupato di più sul carico del database, probabilmente 1 o 2 sono la soluzione migliore. Ricorda che percorrere questa strada significa spingere un sacco di dati nella pagina, creando un'enorme pagina da scaricare per il client. Che potrebbe essere un'esperienza utente orribile.

Il rovescio della medaglia, se hai bisogno di un'esperienza utente migliore, 3 significa che devi caricare meno in anticipo e ottenere solo le informazioni desiderate da un cliente quando lo desiderano. Ciò significa più richieste al tuo server e più chiamate al database, ma una risposta iniziale potenzialmente più veloce dal tuo server.

Ciascuno è un trade-off, in genere carico del server per l'elaborazione sul computer client. Se non sei sicuro di ciò che funzionerà, prova test!

Test su diversi client supportati. La decisione che prenderai sarà molto diversa se stai solo supportando i desktop di qualità superiore con connessioni internet follemente veloci e supportando i telefoni tostapane con connessioni internet sporche.

Test con carichi previsti. Se il tuo database è inattivo per la maggior parte del tempo puoi probabilmente andare con 3. Se il tuo database o server web si sbriciolano sotto il carico, hai bisogno di qualcos'altro.

Come programmatori (e come esseri umani), notoriamente siamo pessimi a indovinare dove saranno i colli di bottiglia. L'esperienza ci aiuta a migliorare, ma i test saranno molto migliori.

    
risposta data 23.02.2017 - 18:50
fonte

Leggi altre domande sui tag