Domanda

Sto cercando (probabilmente) il modo corretto per restituire i dati da a XmlHttpRequest.Le opzioni che vedo sono:

  • HTML semplice.Lascia che la richiesta formatti i dati e li restituisca in un formato utilizzabile.
    Vantaggio:facile da consumare dalla pagina chiamante.
    Svantaggio:Molto rigido, bloccato con uno schema fisso.

  • XML.Lascia che la richiesta restituisca XML, formattalo utilizzando XSLT nella pagina chiamante.
    Vantaggio:il servizio richiesto viene facilmente consumato da altre fonti.
    Svantaggio:Il supporto del browser per XSLT è abbastanza buono?

  • JSON.Lascia che la richiesta restituisca JSON, consumala utilizzando JavaScript, esegui il rendering dell'HTML di conseguenza.
    Vantaggio:più facile "OO-ify" il javascript che effettua la richiesta.
    Svantaggio:Probabilmente non è così facile da usare come le due opzioni precedenti.

Ho anche pensato di optare per l'opzione uno astraendo la logica di visualizzazione nel servizio chiamato in modo tale che il passaggio da un layout all'altro sarebbe banale.Personalmente penso che questa opzione sia la migliore delle tre, per ragioni di compatibilità.

Mentre scrivevo questo, ho avuto un'altra intuizione.Sarebbe una buona idea consentire tutti e tre i formati di risposta, in base a un parametro aggiunto alla richiesta?

È stato utile?

Soluzione

Se stai cercando una soluzione rapida che funzioni con la maggior parte dei framework disponibili, sceglierei JSON.È facile iniziare e funziona.

Se stai cercando di creare un'applicazione più grande che intendi estendere (in termini di dimensioni o magari della tua API per estensioni di terze parti), sceglierei XML.Potresti scrivere un proxy per fornire le informazioni anche in JSON o HTML, ma avere XML come fonte principale vale sicuramente il tempo e lo sforzo durante la creazione dell'app.

Come @Giovanni Topley disse:dipende.

Altri suggerimenti

Sono d'accordo con John Topley: dipende dall'applicazione.C'è un buon articolo su quirksmode che discute i vantaggi e gli svantaggi di ciascun formato che potresti voler leggere: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

Penso che questo dipenda dal livello di "ajaxyness" che avrà la tua app.Se il tuo front-end è un "rich client", al'a Gmail, sceglierei la soluzione JSON, poiché dovresti comunque risolvere il problema della generazione della vista lato client.Se stai utilizzando ajax con parsimonia, per fornire messaggi semplici all'utente, aggiornare alcuni campi di tanto in tanto, ecc., allora sceglierei l'opzione 1, poiché la maggior parte della logica di visualizzazione è già sul server.

Penso che provare a utilizzare XmlHttpRequest sarà un enorme mal di testa, a meno che non sia il tipo di mal di testa che non ti dispiace: per farlo correttamente stai quasi reinventando la ruota.D'altra parte, alla gente piace reinventare le ruote nel tempo libero, solo per dire: "Ehi, ce l'ho fatta".Non me...

Otterrei un framework come prototipo o Extjs, che ha molte funzioni di caricamento dei dati integrate per XML e JSON, inoltre otterrai risultati più prevedibili, poiché i framework dispongono di gestori di eventi per assicurarsi che il tuo XmlHttpRequest abbia avuto esito positivo o negativo.Inoltre ottieni supporto per tutti i vari browser.

Un formato di risposta diverso non dovrebbe essere difficile da produrre.JSON funziona meglio per me, mi piace mantenerlo OO In js, e non so come analizzare bene l'XML :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top