Leitura e interpretação de um RSS com Javascript

Modos de acessar um arquivo RSS externo por meio de Javascript, para mostrar os conteúdos desse arquivo.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 22/7/10
Valorize este artigo:
No artigo anterior mostramos um modo de leitura de RSS por meio de programação no servidor com PHP . Agora vamos ver algumas notas, comentários e problemas que poderemos encontrar no acesso a RSS por meio de programação no cliente com Javascript.

Neste artigo veremos então vários mecanismos e contribuições de diversos desenvolvedores para implementar a leitura de um RSS mediante Javascript e Ajax. Para não decepcionar a ninguém, esclareço inicialmente que não vamos explicar como fazermos nós mesmos um script Javascript para ler um RSS, mas sim comentar soluções ou complementos que existem e que foram realizados por outras pessoas.

Vantagens e inconvenientes do processo de RSS no cliente e no servidor

O desenvolvedor pode escolher, em muitos casos, se deseja fazer um processamento no cliente ou no servidor. As pessoas que entendam um pouco sobre desenvolvimento de aplicações web deveriam saber de inicio que vantagens e inconvenientes tem cada opção, mas mesmo assim, vamos resumi-las agora:

1.- Carga de processamento
Leva um tempo para o servidor ter acesso a um RSS remoto. Processá-lo e interpretá-lo para acessar seus resultados supõe também certa complexidade para uma máquina e para isso se terá que dispor de um determinado tempo. Se analisarmos a carga de nosso servidor ao tentar acessar um conteúdo externo, como um RSS através de sua URL, veremos que a página demora um pouco mais que o normal a ser processada. Por isso, se levarmos parte do processamento ao cliente, podemos aliviar nosso servidor.

2.- Cross-Browser
A diversidade de clientes web gera uma possível fonte de erros. Cada navegador tem suas particularidades, por isso acaba sendo complicado fazer aplicações que funcionem da mesma maneira em todos os navegadores e sem erros. As aplicações Cross-Browser são as que estão desenhadas para funcionar em qualquer cliente web e somos obrigados a pensar nisso se queremos programar com Javascript aplicações compatíveis. Utilizar um leitor RSS em Javascript requer cuidado especial e talvez, mais cuidado nas atualizações de novos navegadores que possam aparecer do que se você o processar tudo com uma linguagem do servidor.

3.- Cross-Domain
Este é o problema mais típico ao se tentar acessar o RSS em outro domínio, devido a uma restrição de segurança que implementam os navegadores. Por isso, se você tentar abrir uma conexão Ajax para trazer o conteúdo de um RSS de outro domínio, você obterá uma mensagem de erro o uma falha do funcionamento de seu script. Você não vai ter este problema se acessar o conteúdo externo diretamente com processamento no servidor em lugar do cliente. Relatamos esse fato em detalhes no item seguinte deste artigo.

Problema do Cross-Domain em Ajax

O primeiro que devemos saber é que, a partir das aplicações no lado do cliente com Javascript, não podemos acessar os dados que haja em domínios distintos daquele que estamos desenvolvendo. Este problema, na realidade, não é mais que uma medida de segurança que implementam os navegadores, para que desde um domínio não se imite estar em outro, ou se tente acessar outros para provocar possíveis furos de segurança. Dado que em Ajax trabalhamos com Javascript, a restrição Cross-Domain se aplica também a Ajax.

Assim , temos que fazer alguma coisa para que possamos ler um RSS remoto para, por exemplo, mostrar as novidades de outro domínio no nosso.

a) Colocar o RSS que desejamos ler em um arquivo em nosso próprio domínio. Isso pode ser feito de maneira manual, subindo-o por FTP.

b) Acessar o RSS por meio do servidor, com programação em PHP por exemplo, e guardá-lo em nosso servidor antes de acessar o arquivo por Ajax.

c) Utilizar uma ponte no cliente para ter acesso ao conteúdo externo por meio de outra tecnologia distinta de Javascript, por exemplo Flash.

Soluções para acessar um RSS mediante Javascript

À hora de escrever este artigo, lamentavelmente, não encontrei nenhuma solução definitiva para o acesso a arquivos RSS com Javascript e Ajax. As soluções que se encontram estão incompletas, ou pouco documentadas, inclusive com erros ou falhas dependendo do navegador.

Script Javascript moRSSload
É um componente escrito em Javascript e PHP para leitura de RSS de domínios externos. Tem implementada uma cache PHP para receber um arquivo RSS com o servidor e guardá-lo nele, antes de abri-lo com Javascript sem o problema do Cross-Domain.

Leitor RSS Ajax de Martín Pulido
Um artigo do blog de Martín Pulido, que explica passo a passo como fazer um leitor RSS simples com Ajax e Javascript. Tem uma solução do Cross-Domain por PHP .

Plugin jQuery: jFeed
É um componente Javascript escrito com o framework Javascript jQuery para a leitura e interpretação de um arquivo RSS com o cliente. Oferece um proxy simples para solucionar o Cross-Domain, porém adverte que é meramente experimental e não se deveria utilizar em sites públicos, pois poderia causar problemas.

Exemplo Mootools para leitura de um RSS
Este componente, que em meus testes com Explorer não tem funcionado (embora sim em Firefox), é apenas um exemplo de como se poderia fazer a leitura do XML do RSS utilizando a framework Javascript Mootools.

Como se vê, ler e processar arquivos RSS a partir de Javascript não é um problema trivial, ainda que vários desenvolvedores tenham feito aproximações interessantes com as quais podemos aprender.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato