Gestione dei dati frontend vs backend

1

Per prima cosa vorrei una risposta da parte di una persona esperta (non una one man band), qualcuno che ha lavorato in una squadra di medie / grandi dimensioni e ha dovuto combattere con questa domanda scottante.

Il problema : Mi viene costantemente chiesto di non inviare vuoto righe

per righe = intendo un elenco di elementi e proprietà.

Un buon esempio potrebbe essere, più caricamenti di file.

<form>
    <input type="text" name="pic[0][label]" />
    <input type="file" name="pic[0][file]" />

    <input type="text" name="pic[1][label]" />
    <input type="file" name="pic[1][file]" />

    <input type="text" name="pic[2][label]" />
    <input type="file" name="pic[2][file]" />
    <input type="submit" value="Upload" />
</form> 

Gli stati dei requisiti :

  • As a user I should be presented with fields 3 (three) upload fields.
  • For each field there should be a corresponding title/name/label
  • There should be a "Add more" button, to allow me (the user) to add more images.

La ragione del requisito sopra riportato è l'esperienza dell'utente. (Sono richiesti meno clic)

L'argomento back-end

L'invio di righe vuote (al server) è "incline agli errori" o è visto come un "angolo di validazione"

L'argomento front-end

  • Il back-end non dovrebbe dettare ciò che la FE può / non può fare.
  • JavaScript è molto volatile e non dovrebbe gestire / convalidare se le righe vuote dovrebbero essere inviate o meno

La domanda

se l'utente:

  • Immette 1 (uno) titolo / etichetta
  • Seleziona l'immagine 1 (una) dal suo PC locale
  • Clic Carica
  • Lascia vuoti gli ultimi 2 (due) campi di caricamento.

Quindi secondo la tua opinione / esperienza con questo tipo di problema. Il front end dovrebbe inviare file o dati vuoti al server o no?

    
posta Val 20.12.2013 - 11:05
fonte

2 risposte

3

Davvero non vedo un problema con le righe vuote.

È abbastanza comune nelle forme (e nella maggior parte delle altre UI utente) avere campi facoltativi che non sono compilati. Il back-end dovrebbe semplicemente ignorare le righe vuote.

Confronta i costi delle due soluzioni.

Back End ignora le righe vuote. Una dichiarazione if e due parentesi graffe.

Front End filtra le righe vuote. Circa quaranta righe di JavaScript incline al bug.

    
risposta data 20.01.2014 - 02:25
fonte
0

Abbiamo fatto qualcosa di simile diverse volte. Abbiamo finito per utilizzare javascript per aggiungere dinamicamente le righe al browser.

L'HTML per una riga è definito in una variabile javascript. Quando fai clic sul pulsante "Aggiungi nuova riga", aggiungi semplicemente l'html alla dom (sostituendo gli ID dei controlli).

Quindi abbiamo usato AJAX per inviare le righe al server. Puoi semplicemente selezionare tutte le righe quando raccogli i dati da inviare, applicando una classe su di essi.

Puoi visualizzare una versione di questo (che ho codificato) qui:
link

Puoi aggiungere dinamicamente nuovi sensori in tempo reale facendo clic su "+"

Vantaggi dell'aggiunta delle righe sul frontEnd:

  • Non è necessario alcun postback
  • Prestazione più rapida
  • Nessuna riga vuota viene attivata

Vantaggi dell'aggiunta delle righe su BackEnd:

  • Una codifica più semplice poiché puoi aggiungerla direttamente al codice HTML
  • soluzione indipendente da Javascript
risposta data 20.12.2013 - 11:09
fonte

Leggi altre domande sui tag