Pregunta

Estoy buscando (posiblemente) la forma correcta de devolver datos de un XmlHttpRequest.Las opciones que veo son:

  • HTML simple.Deje que la solicitud formatee los datos y los devuelva en un formato utilizable.
    Ventaja:fácil de consumir por la página de llamadas.
    Desventaja:Muy rígido, pegado con un diseño fijo.

  • XML.Deje que la solicitud devuelva XML, formatéelo usando XSLT en la página de llamada.
    Ventaja:el servicio solicitado es fácilmente consumido por otras fuentes.
    Desventaja:¿Es suficientemente buena la compatibilidad del navegador con XSLT?

  • JSON.Deje que la solicitud devuelva JSON, consúmalo usando javascript y renderice HTML en consecuencia.
    Ventaja:Es más fácil 'OO-ify' el javascript que realiza la solicitud.
    Desventaja:Probablemente no sea tan fácil de usar como las dos opciones anteriores.

También pensé en optar por la opción uno mientras abstraía la lógica de vista en el servicio llamado de tal manera que activar y desactivar diferentes diseños sería trivial.Personalmente creo que esta opción es la mejor de tres, por cuestiones de compatibilidad.

Mientras escribía esto, tuve otra idea.¿Sería una buena idea permitir los tres formatos de respuesta, según un parámetro agregado a la solicitud?

¿Fue útil?

Solución

Si está buscando una solución rápida que funcione con la mayoría de los marcos disponibles, optaría por JSON.Es fácil empezar y funciona.

Si está intentando crear una aplicación más grande que va a ampliar (en términos de tamaño o tal vez su propia API para extensiones de terceros), optaría por XML.También podría escribir un proxy para proporcionar la información en JSON o HTML, pero tener XML como fuente principal definitivamente vale la pena el tiempo y el esfuerzo al crear la aplicación.

Como @John Topley dicho:Eso depende.

Otros consejos

Estoy de acuerdo con John Topley: depende de la aplicación.Hay un buen artículo sobre quirksmode que analiza las ventajas y desventajas de cada formato que quizás quieras leer: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

Creo que esto depende del nivel de "ajaxyness" que tendrá su aplicación.Si su interfaz es un "cliente enriquecido", como Gmail, elegiría la solución JSON, ya que de todos modos tendría que resolver el problema de tener generación de vista del lado del cliente.Si usa ajax con moderación, para proporcionar mensajes simples al usuario, actualizar algunos campos de vez en cuando, etc., elegiría la opción 1, ya que la mayor parte de su lógica de vista ya está en el servidor.

Creo que intentar utilizar XmlHttpRequest será un gran dolor de cabeza, a menos que sea el tipo de dolor de cabeza que no te importe; para hacerlo correctamente, casi estás reinventando la rueda.Por otra parte, a la gente le gusta reinventar ruedas en su tiempo libre, sólo para decir: "Oye, lo hice".Yo no...

Obtendría un marco como prototipo o Extjs, que tiene muchas funciones de carga de datos integradas para XML y JSON, además obtendrá resultados más predecibles, ya que los marcos tienen controladores de eventos para asegurarse de que su XmlHttpRequest tenga éxito o falle.Además, obtienes soporte para todos los distintos navegadores.

No debería ser difícil producir un formato de respuesta diferente.JSON funciona mejor para mí, me gusta mantener OO en js, y no sé cómo analizar bien XML :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top