2012-11-08 19 views
11

Abbiamo estrarre i dati da server e per questo Se stiamo usando Struts, allora possiamo tirare sia presentando una pagina che MVC Architettura o abbiamo cam effettuare una chiamata di AJAX ma convenzioni è di utilizzare forme e renderemo la risposta, ma affrontiamo anche sfide per offrire un'esperienza utente ricca, quindi scendiamo a compromessi con le convenzioni e iniziamo ad usare l'AJAX eccessivo, quindi come dovremmo fare equilibrio tra due?AJAX vs Modulo di presentazione

risposta

15

Personalmente penso che AJAX dovrebbe essere utilizzato per gli aggiornamenti dei display e l'invio dei moduli deve essere eseguito tramite una ricarica della pagina. Ragionamento?

Quando si inoltrano i moduli, si sta dicendo all'applicazione di fare qualcosa. Gli utenti tendono a voler sentire che è stato fatto. Quando una pagina non viene ricaricata, spesso gli utenti si chiedono "Ha funzionato?". Quindi devono verificare che ciò che hanno fatto sia giusto.

D'altra parte, quando si visualizza un grafico o qualcosa del genere e l'utente dice di "visualizzare dati 2011 .... ora dati 2012", ad esempio, non sta "facendo" qualcosa (creando nuove entità , invio di e-mail, ecc.). Quindi AJAX può fornire una bella interfaccia utente in questo caso. Le ricariche delle pagine sarebbero fastidiose qui.

In conclusione, penso che l'invio di moduli debba essere eseguito tramite ricariche di pagina (lasciare che l'utente lo veda funzionante), mentre gli aggiornamenti di visualizzazione dovrebbero utilizzare AJAX (evitare fastidiose ricariche di pagina).

Naturalmente, questa è una cosa di preferenza. Alcune delle applicazioni della mia azienda utilizzano AJAX dappertutto. Ma quelle sono le applicazioni più difficili da mantenere e eseguire il debug.;)

+19

Si potrebbe voler riconsiderare il modo in cui si pensa ajax. Vuoi veramente ricaricare la pagina quando fai l'upvote o fare un commento su SO? ajax fatto bene è pulito e degrada con grazia. (Inoltre, un aspetto datato, ma comunque significativo, specialmente con i dispositivi mobili: ajax può risparmiare larghezza di banda.) – bdares

+2

Sono d'accordo. Stavo parlando più di "invio di moduli" come compilare un modulo. Se il tuo cambiamento non è enorme, accetto di usare AJAX. Stavo pensando di più "aggiungi tutti questi dati al database", ecc. –

+0

"Utile" upvote per averlo indicato. Ty. :) –

2

Se si verificano errori tra l'invio di dati, l'unico metodo di moduli che è possibile controllare sul server. D'altra parte, se si effettuano chiamate Ajax, è possibile verificare gli errori sul lato client. Quindi, da questa diversa tecnologia di trasmissione dei dati potremmo seguire una decisione che servono a scopi diversi.

7

L'invio di moduli HTML vecchi e di forme ajax di fantasia non si escludono a vicenda.

Innanzitutto, rendere il semplice modulo HTML funzionante correttamente. Quindi, aggiungi javascript per dirottare il modulo e inviare una richiesta Ajax.

Il controller e il modello non si preoccupano se il browser dell'utente supporta (o ha abilitato) javascript. La visualizzazione renderizzata viene decisa in base al fatto che la chiamata sia stata effettuata con javascript o una semplice sottomissione di modulo. Questo è uno dei punti di forza del pattern MVC, non un vincolo.

5

ritengo che la scelta tra i due è alquanto intrinseca:

  • un modulo di presentazione è sincrona e ricarica la pagina.

  • una chiamata ajax è asincrona e non ricarica la pagina.

Se una certa azione cambierà un sacco di elementi dell'interfaccia utente o deve interrogare un sacco di dati che devono essere resi, vorrei andare con modulo di presentazione. D'altra parte, se una determinata azione viene utilizzata per azioni semplici, come la compilazione di una casella di selezione o il miglioramento dell'esperienza utente, farei una chiamata AJAX.

Non c'è niente che ti evita di usare quante chiamate Ajax o moduli di invio di cui hai bisogno, quindi alla fine dipende da te.

Problemi correlati