Devo omettere la comunicazione tra database e server (dopo la risposta iniziale)?

3

Ho un progetto su cui sto lavorando dove un utente carica un grosso file che viene analizzato dal back-end, quindi restituisce i dati in un formato più amichevole. Ora mi chiedo se ho effettivamente bisogno di un database per archiviarlo, o dovrei semplicemente rimandare tutti i dati all'utente in JSON e lasciare che JavaScript mostri i dati correttamente sui pulsanti?

Vorrei aggiungere un database e avere tutto il progetto organizzato MVC, ma mi sembra di archiviare i dati e quindi di estrarlo per servirlo all'utente e interrogarlo ad ogni pressione di un pulsante non è necessario e rallenterebbe la comunicazione .

Sono consapevole che l'utilizzo del metodo no-database significherebbe che altri utenti non possono accedere ai dati che l'utente che carica il file può vedere, ma non è un grosso problema. Eventuali altri problemi che dovrei prendere in considerazione?

    
posta confused00 24.04.2015 - 18:16
fonte

1 risposta

1

Dipende principalmente dalla dimensione dei dati che restituisci e se l'utente dovrebbe utilizzare tutti i dati contemporaneamente .

Ad esempio, se si tratta di un elenco contenente centinaia di migliaia di voci complesse:

  • La risposta offerta come singolo JSON sarà piuttosto grande e:

  • È improbabile che l'utente abbia effettivamente bisogno di vedere tutti i dati contemporaneamente.

Invece, l'utente preferirà accedere ai dati sia con una tabella impaginata o con una tabella limitata da criteri o basata su una ricerca, o sotto forma di un rapporto che può eventualmente essere configurato al volo. In questi casi, non ci sarebbe una sola risposta JSON, ma più richieste JSON, che servono una piccola parte dei dati complessivi raccolti o generati.

D'altra parte, può darsi che non ci sia molto da restituire e che l'utente si aspetterà di vedere tutto in una volta. In questo caso, più richieste JSON non sono veramente utili e possono anche causare una percezione di lentezza.

Se questo è un progetto importante, assicurati di lavorare con designer di interazione qualificati in grado di consigliarti in base alla situazione attuale .

Esempio

Fai un esempio di un'applicazione che consente ai fotografi di inviare un'immagine JPEG e mostra loro i dati EXIF. Hai stabilito, insieme ai tuoi utenti, che ci sono due serie di informazioni EXIF: un set contiene i dati di cui gli utenti hanno assolutamente bisogno: come la lunghezza focale o ISO - le cose normali dei fotografi che manipolano quotidianamente; un altro set contiene i dati che potrebbero essere utili: indice di interoperabilità, bit per pixel - materiale tecnico che molti fotografi ignoreranno durante tutta la loro carriera.

Supponiamo che tu abbia fatto un prototipo che restituisce tutti i dati EXIF in una volta e sembra che sia troppo lento. In effetti, alcune fotografie contengono molti dati che potrebbero essere problematici da restituire in una singola risposta JSON.

Quindi decidi di restituire immediatamente il primo set e di mettere un pulsante "Vedi altro" che carica le restanti informazioni EXIF. Anche il secondo prototipo appare un fallimento: gli utenti che effettivamente necessitano delle informazioni restanti trovano la tua applicazione molto insensibile: fanno clic su "Vedi di più" aspettandosi che i dati vengano visualizzati immediatamente, e invece si trovano a guardare una GIF animata "in caricamento" per un secondo.

Quali sono le prospettive? Un'alternativa potrebbe essere:

  • Elimina immediatamente i dati EXIF essenziali con un pulsante "Visualizza altro",

  • Una volta caricata la pagina, fai un'altra richiesta JSON che carica i dati rimanenti senza che l'utente se ne accorga che qualcosa sta accadendo in background. Una volta caricati i dati, "See more" può essere sostituito dal risultato effettivo, o può agire come prima, solo senza il ritardo di 1 secondo.

risposta data 24.04.2015 - 21:33
fonte

Leggi altre domande sui tag