Ajax
Acrônimo que significa Asynchronous JavaScript and XML, refere-se, de modo geral, a uma solução tecnológica que permite a atualização dinâmica de dados em uma página web sem que esta precise ser inteiramente recarregada.
■ A atualização dinâmica é possível porque a própria interface do usuário (normalmente o browser) processa a resposta, acionando a funcionalidade na sua máquina, sem precisar recarregar todo o arquivo HTML e as imagens da página a cada solicitação ao servidor - embora sempre haja uma ligeira demora devido à velocidade de conexão da rede.
■ Em outras palavras, o Ajax se baseia em scripts localizados no programa-cliente que solicitam dados localizados ao servidor sem que seja necessário atualizar a página inteira.
■ A solução é diferente da utilizada em muitos aplicativos web tradicionais, porque quando estes submetem os dados dos usuários ao servidor, este retorna como resposta uma página inteiramente nova. Esta necessidade de gerar uma página nova a cada solicitação torna estes aplicativos lentos e pesados.
■ Embora o termo Ajax tenha sido mais divulgado desde 2005, a tecnologia se refere à integração entre tecnologias de uso tradicional, como controles de HTML, JavaScript, JSP, ASP, .NET, PHP, CSS e componentes de dados baseados em XML.
Como funciona
A cadeia de eventos que Ajax define numa página web funciona assim:
▪ A página web é enviada pelo servidor para o computador do usuário e aparece na tela.
▪ Um gatilho, normalmente acionado pelo usuário, chama uma função JavaScript (como mouseover, por exemplo, ou o comando de um botão para carregar uma página).
▪ A função JavaScript ativa um objeto XML HTTP (XMLHttpRequest), recurso já implementado nos browsers, primeiro no Internet Explorer e depois no Mozilla/ Safari.
▪ O objeto XML HTTP envia a requisição em tempo real para uma página no servidor, invisível ao usuário, que continua atuando no programa sem interrupção.
▪ A página no servidor transforma uma estrutura XML em XSLT e retorna o resultado.
▪ A função JavaScript aceita o resultado e o aplica diretamente na página.
■ Já existem vários pacotes para criar funcionalidades Ajax diretamente em Javascript, como o Script.aculo.us (http://script.aculo.us), que facilita incluir efeitos como arrastar e soltar elementos e abrir e fechar seções da página, por exemplo
Vantagens do Ajax
◊ O usuário economiza tempo, pois não precisa esperar seguidas vezes pelo download de uma página ou de áreas de uma página para acompanhar a atualização.
◊ Diminui o número de requisições ao servidor para recarregar uma página (apenas informações pontuais são atualizadas, não é preciso requisitar textos e imagens que não sofreram alterações).
◊ Tem recursos específicos de usabilidade, que permitem a atualização de notícias, por exemplo, sem que a página inteira "pule" diante do usuário sem avisar que foi atualizada.
◊ É compatível com a maioria dos browsers e sistemas operacionais - baseada em standards abertos, amplamente testados, não está sujeita às soluções proprietárias de desenvolvedores.
◊ Está sendo adotada por líderes da indústria (como Google, Yahoo, Amazon e Microsoft), o que reforça a sua aceitação pelo mercado.
◊ Evolui rapidamente a partir da comunicação entre desenvolvedores, que têm acesso às fontes dos componentes dos programas desenvolvidos por outros profissionais/equipes.
A Microsoft lançou um conjunto de ferramentas para o desenvolvimento em Ajax, chamado Atlas, baseado eml Visual Studio.
A IBM propõe a AJAX Toolkit Framework.
Empresas como BEA Systems, Oracle, Yahoo, Red Hat e Zend Technologies apoiam a Open Source Initiative (OSI) na criação de padrões para o desenvolvimento de ferramentas para Ajax. (TechRepublic, 25.4.2006)
O Google aplica Ajax no desenvolvimento de aplicativos como o Google Suggest, que sugere expressões e palavras-chave relacionadas à procura, na medida em que o usuário digita no campo de busca (as sugestões se baseam na popularidade dos termos no ranking de buscas da ferramenta).
Outro exemplo de aplicação é o Google Maps, que permite que o usuário desloque os mapas com o mouse, sem que a imagem seja recarregada.
Outros exemplos de sites que usam Ajax: (1).
-> Colr.org (criação de esquemas de cores a partir de conceitos e imagens)
-> CalendarHub (agendas pessoais online)
-> Goowy (gerenciador de webmail, contatos, agenda, jogos acessados regularmente).
◊ Permite que os ataques aos sites que utilizam a tecnologia sejam gerenciados de maneira centralizada, se contrapondo aos aplicativos desktop, instalados em cada dispositivo, cujo uso (bem como a contaminação) é, em última análise, responsabilidade do usuário ou do ambiente funcional em que este atua.
Alguns problemas do Ajax
◊ Não pode ser usado pelos usuários que desabilitam JavaScript nos browsers ou não têm recursos de acessar o servidor através dos scripts. Mesmo que a funcionalidade fique prejudicada, de acordo com as melhores práticas de acessibilidade, o conteúdo das páginas deve ser acessível também a estes usuários.
◊ O uso do botão "Voltar" do browser, um dos mais utilizados pelos usuários, não é confiável, pois não funciona de maneira consistente para páginas atualizadas dinamicamente.
◊ A atualização dinâmica das páginas dificulta a marcação da sua URL nos "Favoritos" ou o seu envio para outras pessoas (embora algumas soluções ofereçam uso de pontos "âncora" atualizados dinamicamente para identificar o aplicativo em certo ponto ou momento).
◊ As páginas não oferecem funcionalidade plena para usuários com deficiências físicas e usuários de browsers especiais.
◊ Apenas as versões recentes do Internet Explorer e do Mozilla são compatíveis com Ajax. O Opera é compatível com Ajax apenas a partir da versão 8.
◊ Está sujeito a diferenças de interpretação pelos diversos browsers, pois se baseia em JavaScript. Um script pode funcionar de uma maneira em um browser e de outra maneira em outro browser. Este problema tende a diminuir, na medida em que os browsers cada vez mais compatíveis com os padrões web.
◊ Como o conteúdo é dinâmico, é difícil a sua indexação pelos buscadores, pois estes exigem uma URL e indexam palavras publicadas nas páginas para classificá-las no ranking de resultados (as aranhas dos buscadores não carregam as páginas e executam o Javascript).
◊ Os aplicativos podem ficar expostos a vulnerabilidades relacionadas a serviços web, aumentando muito o tráfego em rede de XML.
◊ Ainda há brechas para ataques, as medidas de segurança usadas para defender os sites que utilizam Ajax ainda não são inteiramente conhecidas ou testadas. Em outubro de 2005 ocorreram ao site MySpace e em 2006 os serviços de mensagem instantânea do Yahoo também foram atacados (eWeek, 21.6.2006).
Pode acontecer também que um browser interprete um código JavaScript malicioso de um web site e seja instruído para capturar informação confidencial, como senhas e dados bancários.
Aplicações de Ajax
■ O uso de Ajax aponta para importantes tendências de desenvolvimento de criar, no browser, funcionalidades comparáveis às dos programas que rodam nos sistemas operacionais dos computadores pessoais.
Por exemplo:
-> O Writely (adquirido pelo Google em março 2006), hoje GoogleDocs, é um programa online para edição de textos, que permite que os participantes editem e arquivem textos online. Os autores podem compartilhá-los com colegas e amigos.
-> Outro programa online é o gOffice, da Silveroffice, um programa editor de textos com recursos de formatação. A empresa está desenvolvendo uma planilha e um programa de apresentação, que poderão ser convertidas para o o formato PDF (TechRepublic, 12.1.2006).
■ Os aplicativos baseados em Ajax são indicados principalmente para prover informações atualizadas frequentemente (como as de serviços de logística, contabilidade e CRM, por exemplo) e informações compartilhadas com múltiplos usuários, como planilhas de preços, relatórios e informações sobre projetos.
Representam grande economia de custos para empresas com atuação dispersa em diversas áreas geográficas.
■ Estes aplicativos podem ser hospedados em qualquer servidor web, rodar em qualquer plataforma e ser atualizados (com upgrades) dinamicamente.
Podem também ser acessados por qualquer computador conectado à web e por dispositivos portáteis. Permitem o arquivamento online de documentos (ao invés do arquivamento no disco rígido ou na rede corporativa).
■ O uso de Ajax passa a exigir novas abordagens para a avaliação das estatísticas de acesso dos web sites, na medida em que permite que as ações dos usuários atualizem o conteúdo sem que as páginas sejam recarregadas.
Como o número de páginas visitadas (pageviews) registrado cai muito e não revela com precisão o que os visitantes estão procurando, os sites que monitoram o número de cliques para estabelecer preços para os anúncios publicados precisa ser revisto.
Assuntos relacionados
► CRM (Customer Relationship Management)
► XHTML - Separar forma e conteúdo
► Javascript
► Acessibilidade
► Serviços web.
Referências
► Implementing AJAX using ASP.NET 1.1 (15Seconds, acesso em 5.6.2005)
► AJAX: usable interactivity withremote scripting (SitePoint, acesso em 14.7.2005)
► Ajax (programming) (DigitalWeb, acesso em 4.11.2005)
► Will AJAX replace the desktop? (developer.com, acesso em 7.1.2005)
1) Technology of the year 2006 (ClickZ, acesso em 12.1.2006)
Mais informações sobre o assunto (links externos)
► Web 2.0, meet internet attack 2.0, de Stephen Shankland, sobre os problemas de segurança do Ajax Ajax (CNet News.Com, acesso em 25.4.2007)
► Be aware of AJAX's drawbacks (TechRepublic, acesso em 14.3.2008)
► Provide bookmark and history functionality with Really Simple History (TechRepublic, acesso em 27.2.2008)
► AJAX gives software a fresh look (NewsCom, acesso em 04.10.2005)
► Measuring the benefits of Ajax, de Alexei White, com testes comparados de uso de aplicativos tradicionais e aplicativos desenvolvidos com Ajax (developer.com, acesso em 07.1.2006)
► A spider's view of Web 2.0, de Michael Wyszomierski e Greg Grothaus, sobre a indexabilidade de sites e aplicativos desenvolvidos com Ajax (Google Webmaster Central Blog, acesso em 17.11.2007)
Termos utilizados:
► XSLT