Arquivo para a Ajax categoria

JSON ou XML, o que retornar para o AJAX?

Postado em Ajax, JavaScript em 23 23UTC Outubro 23UTC 2009 por alexandrems

Para a conclusão da minha pós-graduação, fiz um artigo para comparar as formas de retorno mais utilizadas para aplicações em AJAX, neste post vou resumir a idéia e mostrar minha conclusão, se quiser pode clicar aqui e baixar o artigo completo.

O conceito do AJAX é simples, enviar requisições assíncronas para um servidor que irá processa-las e retornara algum tipo de dados que serão tratados pelo JavaScript na máquina do cliente. Mas e  qual é o melhor formato desses dados que o servidor irá retornar para o cliente?

Bom básicamente ele retorna texto (string) através do protocolo HTTP, sendo possível identificar qual pelo cabeçalho um tipo específico desses dados, como por exemplo, o XML. Se não for especificado ele traz um texto normal. Não vou entrar em detalhes como é feito isso, você ja deve ter trabalhado com AJAX para poder entender o que segue neste post.

XML é muito conhecido e utilizado por inumeras aplicações, com ele é possível organizar com facilidade uma estrutura de dados para serem transmitidos pelo servidor ao cliente. JSON é uma notação de um Objeto JavaScript, mas pode ser utilizado em várias linguagens. Utilizando a função eval() o JavaScript transforma essa string JSON em um objeto para poder ser manipulado.

Tanto XML como JSON podem ser escritos manualmente na forma de uma string, mas existem classes e API´s para várias linguagens que facilitam a manipulação dessas tecnologias. Abaixo vai um exemplo de organização de dados em XML e JSON.

<?xml version="1.0" encoding="iso-8859-1"?>
 <nome> Alexandre </nome>
 </idade> 27 </idade>
</xml>

Exemplo de código XML.

({"nome":"Alexandre"},{"idade":"27"})

Exemplo equivalente para código JSON.

A manipulação do XML necessita utilizar padrões DOM, isso de certa forma dificulta a escrita do código em relação a manipulação com JSON, onde na maioria dos casos basta passar um Objeto ou Vetor com os dados que a classe ou API transforma automáticamente em uma String JSON. A mesma idéia se aplica na parte do cliente, onde o Javascript precisa utilizar o DOM para manipular o retorno em XML. O exemplo disso em JavaScript segue abaixo.

// Para retornar o primeiro nome "Alexandre" vindo de um XML
var nodo = http_request.responseXML;
nodo[0].getElementsByTagName('nome')[0].childNodes[0].nodeValue;

// Para retornar o primeiro nome "Alexandre" vindo de um objeto JSON
var json = eval("("+http_request.responseText+")");
json[0].nome;

Em relação a performance, tamanho e velocidade, tanto XML quanto JSON estão no mesmo nível, ou seja para o cliente é indeferente se a aplicação retorna XML ou JSON. Já para o desenvolvedor é nitida a diferença entre trabalhar com XML e JSON, como o XML segue vários padrões específicos desta linguagem é natural a necessidade de uma outra linguagem utilizar um parser(DOM) que possibilita manipulação dos itens e elmentos do XML. Portanto uma tecnologia que não dependa de linguagens externas  para manipular informações que serão transmitidas entre uma linguagem e outra já teria certa vantagem sobre o XML.

Links
http://www.json.org/
http://battisti.wordpress.com/apostilas/

Codificação nos posts

Postado em Ajax, Geral, JavaScript, PHP com as tags em 15 15UTC Abril 15UTC 2009 por alexandrems

A tempos que estava atraz disso, colocar codificação do php nos posts, recebi um comentário do edipo dizendo como fazer, mas estava um pouquinho errado eheheh. Dai deu uma googlada e achei essa página, Support Code (Bem sujestivo :P ).

Resumindo, soh utilizar o código dentro das tags.

[sourcecode language='php']

Código

[/sourcecode]

Algumas linguagens que ele “estiliza”:

  • cpp
  • csharp
  • css
  • delphi
  • html
  • java
  • jscript
  • php
  • python
  • ruby
  • sql
  • vb
  • xml