Pergunta

Estou procurando (sem dúvida) a maneira correta de retornar dados de um XmlHttpRequest.As opções que vejo são:

  • HTML simples.Deixe a solicitação formatar os dados e retorná-los em um formato utilizável.
    Vantagem:fácil de consumir pela página de chamada.
    Desvantagem:Muito rígido, preso a um layout fixo.

  • XML.Deixe a solicitação retornar XML, formate-a usando XSLT na página de chamada.
    Vantagem:o serviço solicitado é facilmente consumido por outras fontes.
    Desvantagem:O suporte do navegador para XSLT é bom o suficiente?

  • JSON.Deixe a solicitação retornar JSON, consuma-a usando javascript e renderize o HTML de acordo.
    Vantagem:mais fácil 'OO-ify' o javascript que faz a solicitação.
    Desvantagem:Provavelmente não é tão fácil de usar quanto as duas opções anteriores.

Também pensei em escolher a opção um enquanto abstraía a lógica de visualização no serviço chamado de tal forma que alternar entre diferentes layouts seria trivial.Pessoalmente, acho que esta opção é a melhor das três, por razões de compatibilidade.

Ao digitar isso, tive outro insight.Seria uma boa ideia permitir todos os três formatos de resposta, com base em um parâmetro adicionado à solicitação?

Foi útil?

Solução

Se você está procurando uma solução rápida que funcione com a maioria dos frameworks disponíveis, eu escolheria JSON.É fácil começar e funciona.

Se você está tentando construir um aplicativo maior que irá estender (em termos de tamanho ou talvez sua própria API para extensões de terceiros), eu optaria por XML.Você também pode escrever um proxy para fornecer as informações em JSON ou HTML, mas ter XML como fonte principal definitivamente vale o tempo e esforço ao construir o aplicativo.

Como @John Topley disse:depende.

Outras dicas

Concordo com John Topley - depende da aplicação.Há um bom artigo sobre quirksmode que discute as vantagens e desvantagens de cada formato que você pode querer ler: http://www.quirksmode.org/blog/archives/2005/12/the_ajax_respon.html

Acho que isso depende do nível de "ajaxyness" que seu aplicativo terá.Se o seu front-end for um "cliente rico", no Gmail, eu escolheria a solução JSON, pois você teria que resolver o problema de ter a geração de visão do lado do cliente de qualquer maneira.Se você estiver usando ajax com moderação, para fornecer mensagens simples ao usuário, atualizar alguns campos de vez em quando, etc., então eu escolheria a opção 1, já que a maior parte da sua lógica de visualização já está no servidor.

Acho que tentar usar o XmlHttpRequest será uma grande dor de cabeça, a menos que seja o tipo de dor de cabeça que você não se importa - para fazer isso corretamente, você está quase reinventando a roda.Por outro lado, as pessoas gostam de reinventar rodas em seu tempo livre, apenas para dizer: “Ei, consegui”.Eu não...

Eu obteria uma estrutura como protótipo ou Extjs, que possui muitas funções de carregamento de dados integradas para XML e JSON, além de obter resultados mais previsíveis, pois as estruturas possuem manipuladores de eventos para garantir que seu XmlHttpRequest tenha sido bem-sucedido ou falhe.Além disso, você obtém suporte para todos os vários navegadores.

Formatos de resposta diferentes não devem ser difíceis de produzir.JSON funciona melhor para mim, gosto de manter OO em js, e não sei como analisar bem o XML :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top