Tag Archives: javascript

AJAX – o que é?

Published by:

Ajax é a abreviatura de Asynchronous JavaScript and XML. Trata-se do nome de uma técnica para tornar a Web mais eficiente, transferindo pequenas quantidades de informação sem que o utilizador tenha essa percepção.

Mas, perguntam-me, o que te inspirou para escrever hoje sobre Ajax?

Esta tarde, um dos visitantes do meu blog foi originário do Google, onde tinha pesquisado “como colocar ajax no flash“.

Se me tivesse perguntado a mim, e não ao Google, provavelmente eu teria respondido não coloca.

O Ajax é uma técnica para efectuar pedidos HTTP em javascript e processar o XML devolvido para obter uma estrutura de dados, que será depois utilizada para alterar algo no site.

Mas, qual é o problema de utilizar isto em Flash?

Na verdade nenhum, no entanto o flash já dispõe de ferramentas para fazer todas estas operações internamente, pelo que não vejo necessidade de recorrer ao javascript para executar nenhuma delas.

O que o visitante do Web a Sério pretendia, penso, era implementar o tipo de funcionalidades normalmente atribuidas ao Ajax em Flash. Mas isso não é Ajax, uma vez que o JavaScript deixa de fazer parte da equação.

Ajax – descrição

Mas então, o que é o Ajax?

O Ajax é uma técnica, que consiste em utilizar um objecto XMLHttpRequest (que pode ter que ser criado de forma diferente consoante o browser) para efectuar um pedido HTTP ao servidor em background, receber dados do servidor em XML, processar esses dados e alterar o site de acordo com os dados recebidos.

Hoje existem várias variantes a todo este processo, sem normal utilizar um iframe para efectuar as chamadas ao servidor, e vários outros formatos são por vezes utilizados para a transferência de dados, incluindo HTML directamente, texto puro e vários outros.

Vantagens

As grandes vantagens de utilizar Ajax num site é que permite proceder a alterações na página com muito menos transferência de informação, pois podem ser transferidos apenas os dados novos em cada alteração, sendo o HTML do site reutilizado ou criado no cliente.

Por outro lado, como apenas partes das páginas são actualizadas, e essa actualização é normalmente muito mais rápida do que se toda a página fosse actualizada, o utilizador chega a ter a sensação de que tudo acontece em tempo real, localmente no seu computador.

Desvantagem

A grande desvantagem da utilização massiva de Ajax são a usabilidade e a indexação dos sites.

Pela parte da usabilidade, o facto de uma grande quantidade das funcionalidades do site serem implementadas em Javascript torna mais dificil a manutenção de funções a que os utilizadores estão habituados, como o botão Voltar/Back do browser, que quando as sucessivas páginas são criadas no browser do cliente não funciona.

Por outro lado, se as alterações são mais que alterações do conteúdo, mas navegação no próprio conteúdo, pode tornar-se impossível (ou pelo menos complexo) guardar links directos para determinado conteúdo que se pretende lembrar.

Esta questão da navegação coloca-se ainda com mais relevância quando se trata a indexação do site, pois se as listagens são geradas em Javascript, e os Robots de Indexação dos motores de pesquisa não executão o Javascript, na maioria dos caso não vão indexar correctamente o site.

Outro problema por vezes apresentado é o dos tempos de resposta, que numa rede com tempos de resposta elevados podem gerar timeouts e tempos de espera que os utilizadores não percebem. Nesta situação os utilizadores devem ser alertados visualmente desta situação.

Algumas referências

PpW – Usar Flash e Javascript

Published by:

Hoje, mais do que no passado, o AJAX (Asynchronous JavaScript and XML) parece estar em todo o lado, e os sites dinâmicos criados utilizando essa tecnologia são mais que muitos.

Há alguns dias, o Google disponibilizou o seu Google Web Toolkit, que permite criar aplicações Java, que são depois convertidas para aplicações HTML+Javascript.

O próprio Google utiliza AJAX em várias das suas ferramentas, como seja o Gmail, ou oGoogle Maps. Mas será que o AJAX é o resultado de todas as nossas preces?

E o Flash, que a macromédia tem desenvolvido ao longo de anos, e que hoje é uma ferramenta de desenvolvimento aplicacional completa, utilizada para fazer desde menus animados até jogos ou video players. É esta a solução para as nossas preces?

Bem, mesmo normalmente não utilizando Flash, e raramente recorrendo ao Javascript mais do que o estritamente necessário, concordo que são ferramentas uteis, e que permitem muitas coisas que seria bastante dificeis (ou mesmo impossiveis de conseguir) de outra forma.

Mas, peço desculpa, ainda não aderi à febre. Nem à do Flash, que com a novidade AJAX está a passar, nem à do AJAX. Por duas razões, e que se aplicam a ambas as situações:

  • Não são correctamente indexados;
  • Não são completamente compatíveis.

Não são completamente indexados

Hoje, ao contrário do que acontecia há algum tempo atrás, um flash cuidadosamente criado com esse objectivo em mente já é razoávelmente indexado. Mas apenas se for criado com esse objectivo em mente.

Mas não é isso que acontece normalmente. A maioria dos flahs que vi até hoje não contém directamente os conteúdos, ou quando os contém não estão em texto, mas em imagens, aparentemente para ficarem sempre com a aparência correcta.

Mas mesmo quando os texto estão dentro do flash e são indexáveis, não é possivel os motores de pesquisa enviarem os utilizadores directamente para a página onde se encontram os conteúdos que o utilizador procura.

Problemas idênticos se colocam quando se utiliza JavaScript para criar conteúdos, para os colocar nas páginas, independentemente de esses conteúdos fazerem inicialmente parte do JavaScript de alguma forma ou serem pedidos ao servidor pelo javascript (Sendo que neste caso nenhum motor de pesquisa irá aceder a esses conteúdos, uma vez que não executam o javascript).

Estas situações tornam-se mais graves quando o Javascript ou o Flash é utilizado para menus. Neste caso além de os conteúdos do Flash, ou criados pelo Javascript não serem indexados, também não o são as páginas que são pedidas quando os utilizadores clicam no menu.

Compatibilidade

Vários browsers não têm pluggin de flash, e alguns não executam javascript, pelo que sites que dependam muito dessas ferramentas não serão correctamente vistos nesses browsers.

Dos meus três browsers (Galeon, Mozilla Firefox e Internet Explorer), durante muito tempo apenas um tinha o pluggin de Flash instalado, e utilizadores invisuais, por exemplo, não têm forma de saber onde clicar num menu em flash para acederem a uma página que procuram.

Imagens, mesmo com MAP, isto é, com vários links na mesma imagem, podem ter titles por link, o que permite a qualquer utilizador saber antecipandamente alguma informação acerca do local para onde será enviado quando clicar no local onde tem o cursor. Mas o flash não.

Browsers apenas de texto (muitas vezes os browsers especiais são baseados nessas ferramentas) descrevem as imagens de forma alternativa (utilizando os campos alttitle), mas não têm forma de descrever um flash, e muitos deles também não executam javascript, pois uma grande parte da DOM não se lhes aplicaria de qualquer das formas.

Soluções

Claro que existem soluções de compromisso, como seja, ter um segundo menu, que será mostrado quando o utilizador não tiver flash, ou que esteja noutra parte da página, e que constituia uma alternativa ao menu em Flash ou Javascript, e que os motores de pesquisa também consigam utilizar.

Outra solução será ter uma versão alternativa do site para utilizadores que não têm flash ou javascript, mas isso significa também que os motores de pesquisa irão indexar essa versão e não a primeira, o que pode fazer com que a maioria dos utilizadores passe a utilizar a versão HTML, mesmo tendo flash e javascript.

Mas na verdade, eu utilizaria Flash e Javascript apenas no estritamente necessário. AJAX e outras formas de JavaScript que façam pedidos remotos de conteúdos, no entanto, utilizaria apenas em backoffices e partes de sites que não pretenda que sejam indexados.