2009-11-21 7 views
9

Cosa pensi sia meglio?HTML template + JSON vs Server HTML

Usa per il risultato Ajax:

  1. HTML che è stato generato sul server di
  2. Restituisci dati che sarebbero stati utilizzati all'interno di template?

Penso che più il rendering del server stia sfuggendo, una logica più semplice e complessa, quando sono necessari molti dati!

risposta

5

Un vantaggio che vedo con "elaborazione json per creare markup" sul lato client è la diminuzione delle dimensioni dei dati trasferiti.

La risposta alla tua domanda dipenderà dal tipo di applicazione che stai sviluppando. Dire se si dispone di un'applicazione in cui si visualizza un elenco di messaggi di stato (in costante aggiornamento) su una pagina; inviare l'html sarebbe più pesante in quanto conterrebbe tutti i markup per la stesura dei messaggi di stato. Invece, un oggetto JSON sarebbe abbastanza leggero e può essere elaborato facilmente sul lato client nel markup richiesto.

6

Entrambi gli approcci hanno vantaggi e svantaggi. Restituire JSON o XML dal server e utilizzare javascript templating per convertire in HTML è più RESTful e ha il vantaggio di separare i dati e la presentazione e consentire a più client di utilizzarli facilmente. Il contro è che è più lavoro da fare in javascript.

D'altra parte se il server restituisce HTML, tutto ciò che devi fare è iniettarlo da qualche parte nel DOM. Sfortunatamente in questo caso markup e dati sono misti e sarebbe più difficile per gli altri clienti estrarre dati senza formattare (ad esempio, un'applicazione desktop o mobile che desidera utilizzare servizi dal tuo sito).

IMHO se l'unico utente è il tuo sito, restituire l'HTML sarebbe l'approccio migliore.

+1

Avere il server che invia HTML più strettamente accoppia ciò che si ha sul server con quello che si sta eseguendo nel browser. Se vuoi fare più di una cosa con quel risultato, anche nella stessa pagina, avere il JSON sarà una grande vittoria. In altre parole, se stai generando HTML dinamico nel server, hai aggiunto un altro posto da guardare quando hai bisogno di risolvere un problema di layout e firebug non sarà così utile perché dovrai cambiare logica lato server solo per risolvere i problemi di presentazione. – Suppressingfire