O documento apresenta um histórico da web, como evoluiu a arquitetura de sites e a introdução do AJAX. Explica que AJAX utiliza tecnologias já existentes como JavaScript, XML e HTTP para permitir atualizações assíncronas na página e maior interatividade. Também destaca os desafios do desenvolvimento com AJAX, como compatibilidade entre navegadores e a necessidade de implementar mecanismos como histórico de navegação.
O documento apresenta uma palestra sobre jQuery e AJAX. Aborda conceitos como DOM Scripting, manipulação de dados com XML/JSON, requisições assíncronas e como jQuery une essas técnicas. Também discute vantagens de jQuery como facilitar desenvolvimento, popularidade e plugins disponíveis.
O documento fornece uma visão geral do desenvolvimento web, discutindo seus principais conceitos ao longo de quatro ciclos. Apresenta também as vantagens da web, como informação disponível a qualquer hora e em qualquer lugar, além de explicar brevemente como funciona através da troca de dados entre cliente e servidor.
O documento apresenta os conceitos e vantagens do desenvolvimento web em três camadas utilizando PHP, MVC e AJAX. Aborda tópicos como orientação a objetos, padrão MVC, bibliotecas JavaScript para AJAX e exemplos práticos de implementação.
O documento apresenta uma introdução ao desenvolvimento web, abordando:
1) As características dos clientes e servidores na arquitetura cliente-servidor;
2) A evolução da web ao longo do tempo, desde a criação da HTML até o desenvolvimento de novas tecnologias como JavaScript, CSS e DHTML;
3) Tópicos importantes como a "guerra dos navegadores", a necessidade de padronização e o surgimento de novas especificações como HTML4, CSS e DOM.
O documento discute os principais conceitos da Web 2.0, incluindo sua evolução, tecnologias envolvidas e oportunidades de mercado. Aborda tópicos como a história da web, modelos de desenvolvimento, linguagens como HTML, CSS e JavaScript e padrões como W3C.
O documento resume os principais conceitos da arquitetura da web, incluindo o modelo cliente-servidor, protocolo HTTP, URLs e como as páginas interagem entre o browser e o servidor. Também discute o desenvolvimento de sistemas web usando linguagens como HTML, Java e PHP.
O documento discute ferramentas e soluções para diminuir a complexidade do desenvolvimento de software, como integração contínua e ambientes automatizados. Ferramentas como Maven, Ant, Ivy, Hudson, PMD, Checkstyle e Findbugs automatizam tarefas como build, testes e análise de qualidade de código. XSLT e XPath podem ser usados para gerar documentação e configurações a partir de dados em arquivos XML.
O documento apresenta uma palestra sobre jQuery e AJAX. Aborda conceitos como DOM Scripting, manipulação de dados com XML/JSON, requisições assíncronas e como jQuery une essas técnicas. Também discute vantagens de jQuery como facilitar desenvolvimento, popularidade e plugins disponíveis.
O documento fornece uma visão geral do desenvolvimento web, discutindo seus principais conceitos ao longo de quatro ciclos. Apresenta também as vantagens da web, como informação disponível a qualquer hora e em qualquer lugar, além de explicar brevemente como funciona através da troca de dados entre cliente e servidor.
O documento apresenta os conceitos e vantagens do desenvolvimento web em três camadas utilizando PHP, MVC e AJAX. Aborda tópicos como orientação a objetos, padrão MVC, bibliotecas JavaScript para AJAX e exemplos práticos de implementação.
O documento apresenta uma introdução ao desenvolvimento web, abordando:
1) As características dos clientes e servidores na arquitetura cliente-servidor;
2) A evolução da web ao longo do tempo, desde a criação da HTML até o desenvolvimento de novas tecnologias como JavaScript, CSS e DHTML;
3) Tópicos importantes como a "guerra dos navegadores", a necessidade de padronização e o surgimento de novas especificações como HTML4, CSS e DOM.
O documento discute os principais conceitos da Web 2.0, incluindo sua evolução, tecnologias envolvidas e oportunidades de mercado. Aborda tópicos como a história da web, modelos de desenvolvimento, linguagens como HTML, CSS e JavaScript e padrões como W3C.
O documento resume os principais conceitos da arquitetura da web, incluindo o modelo cliente-servidor, protocolo HTTP, URLs e como as páginas interagem entre o browser e o servidor. Também discute o desenvolvimento de sistemas web usando linguagens como HTML, Java e PHP.
O documento discute ferramentas e soluções para diminuir a complexidade do desenvolvimento de software, como integração contínua e ambientes automatizados. Ferramentas como Maven, Ant, Ivy, Hudson, PMD, Checkstyle e Findbugs automatizam tarefas como build, testes e análise de qualidade de código. XSLT e XPath podem ser usados para gerar documentação e configurações a partir de dados em arquivos XML.
Este documento fornece uma introdução sobre como criar módulos para o Divi no WordPress de forma simples. Explica a estrutura básica de arquivos necessária, como criar funções e seções, e os principais tipos de campos disponíveis. Também mostra como renderizar os dados no frontend e incluir arquivos CSS e JS.
Apresentação feita para o treinamento dos colaboradores da Vitrio.
Público alvo do treinamento: Analistas de conteúdo, Designers e equipe de Marketing Digital.
O principal assunto era uma breve introdução ao JavaScript ,jQuery e plugins. Entretanto, abrangemos outros tópicos, tais como: Desenvolvimento em Camadas, requisições, performance de web sites e algumas ferramentas.
Alto desempenho e escalabilidade em aplicações web utilizando banco de dados ...Vagner Santana
O documento discute o desenvolvimento de uma aplicação web escalável utilizando banco de dados não-relacional e programação orientada a eventos com Node.js para suportar alto desempenho e número de acessos. O objetivo é comparar desempenho de aplicações com bancos relacionais e não-relacionais como MongoDB.
O documento apresenta uma introdução ao Ajax, abordando:
1) O que é Ajax, seus benefícios e casos de uso;
2) Os fundamentos tecnológicos como XML, JavaScript, CSS e DOM;
3) Os passos para implementar uma requisição e resposta Ajax.
0 Introdução ao Desenvolvimento Web - ApresentaçãoMauro Duarte
Este documento apresenta um curso introdutório sobre desenvolvimento web que inclui 20 aulas sobre HTML, CSS e padrões web. O curso é ministrado pelo professor Mauro Duarte e inclui três provas para avaliar o conhecimento dos alunos.
O documento discute boas práticas de design de APIs, incluindo versionamento de APIs, definição de endpoints, status HTTP, tratamento de erros e ferramentas de documentação de APIs.
Palestra sobre Javascript que ministrei na III Mostra Científica do Senac-RS.
A palestra conta um pouco da história do Javascript e o porque da imcompreensão da linguagem. Também mostra o que é possível fazer e como desenvolver um código um profissional e levado a sério com Javascript.
O documento resume as principais razões para escolher o framework Ember.js em 2016, destacando suas características como convenção sobre configuração, separação de interesses entre componentes e o sistema de objetos inspirado em Ruby. Também descreve recursos como o Ember CLI para criação de projetos, o Ember Data para manipulação de modelos e o FastBoot para renderização do lado do servidor.
O documento apresenta uma introdução sobre AJAX, incluindo seu histórico, princípios, como funciona e casos de sucesso. AJAX permite atualizações assíncronas na página web usando uma combinação de tecnologias como JavaScript, XML e HTTP. Isso proporciona interfaces ricas e responsivas sem recarregar a página inteira. Exemplos bem-sucedidos incluem aplicativos da Google e ferramentas de gestão de projetos online.
1) O documento descreve as etapas para desenvolver uma aplicação web usando JSF e RichFaces, incluindo configuração do projeto, criação de templates, beans gerenciados e componentes de interface.
2) É explicado como implementar navegação baseada em estados usando beans gerenciados e tags JSF para exibir diferentes partes da aplicação.
3) Detalhes técnicos como configuração no web.xml, criação de utilitários, templates e componentes de menu são apresentados.
O documento discute o uso da tecnologia AJAX para criar sistemas web mais ricos e interativos, semelhantes a aplicativos desktop. Apresenta o framework Atlas da Microsoft, que facilita o desenvolvimento com AJAX seguindo padrões web. Fornece exemplos de uso do Atlas e discute as vantagens e desvantagens de se utilizar essa abordagem.
O documento discute o uso da tecnologia AJAX para criar sistemas web mais interativos e dinâmicos, semelhantes a aplicativos desktop. Apresenta o framework Atlas da Microsoft, que facilita o desenvolvimento com AJAX seguindo padrões web. Fornece exemplos de uso do Atlas e discute as vantagens e desvantagens de se utilizar essa abordagem.
Este documento apresenta as técnicas de programação para a web, incluindo conceitos gerais sobre aplicações web, criação de páginas usando HTML, CSS e JavaScript, e o uso de servlets e JSP para criar aplicações web dinâmicas usando o modelo MVC.
O documento apresenta uma introdução ao desenvolvimento web com .NET Core, descrevendo sua história, arquitetura, ferramentas e como transformar um projeto console em um site web usando o framework MVC.
O documento discute o desenvolvimento web com ASP.Net e MVC. Apresenta o .NET Framework, Visual Studio 2010, ASP.Net, Web Forms e MVC. Explica que MVC é um padrão de arquitetura que separa modelo, visão e controle, enquanto Web Forms é mais rápido para desenvolvimento inicial mas MVC oferece mais controle e testabilidade.
Moacir Casemiro apresenta suas credenciais e experiência em arquitetura e gestão de software, incluindo certificações como MCP, MCAD, MCTS e MCPD. Ele fornece seus contatos e detalhes sobre palestras e treinamentos sobre padrões de projeto, MVC e ASP.NET MVC.
1) O documento descreve uma aula sobre desenvolvimento web com Angular, incluindo a instalação das ferramentas necessárias e a criação de um projeto Angular simples para gerenciar listas de tarefas.
2) É apresentado um modelo de dados para armazenar as tarefas, um template HTML para exibir os dados e um componente para conectar o modelo ao template.
3) O fluxo básico de execução de uma aplicação Angular é explicado, ligando o bootstrap, componentes, templates e data binding.
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
O documento discute técnicas e recursos para desenvolvimento web em grandes escalas. Apresenta 14 regras para melhorar o desempenho do front-end e demonstra exemplos de CDN, cache, Ajax, aplicações em tempo real e outras ferramentas como Node.js. Também fornece dicas sobre configurações do IIS e bibliotecas de código aberto.
O documento introduz o ASP.NET, descrevendo-o como uma nova versão da tecnologia Active Server Pages para desenvolver páginas web dinâmicas de forma orientada a objetos. Resume os principais motivos para a criação do ASP.NET, como melhorias na estruturação do código, produtividade e desempenho, e apresenta novos recursos como controles do servidor, compilação das páginas e suporte a múltiplas linguagens.
A aula apresenta os conceitos fundamentais da Web 2.0, incluindo sua evolução, tecnologias e mercado de trabalho. Aborda tópicos como modelo de desenvolvimento em camadas, padrões da W3C e linguagens como HTML, CSS e JavaScript.
O documento discute o Google Web Toolkit (GWT), que permite aos desenvolvedores criarem aplicativos front-end complexos em Java que são compilados para JavaScript otimizado. O GWT fornece recursos como comunicação com servidores, componentes de interface do usuário reutilizáveis, e integração com ferramentas de desenvolvimento como Eclipse.
O documento apresenta uma introdução ao desenvolvimento web, cobrindo tópicos como: a história da web desde seu surgimento até os navegadores atuais; linguagens como HTML, CSS e JavaScript; e novas tecnologias como AJAX que tornaram os sites mais dinâmicos. O autor também discute as novas oportunidades de emprego geradas por essas tecnologias e dá dicas sobre como iniciar uma carreira em desenvolvimento web.
Este documento fornece uma introdução sobre como criar módulos para o Divi no WordPress de forma simples. Explica a estrutura básica de arquivos necessária, como criar funções e seções, e os principais tipos de campos disponíveis. Também mostra como renderizar os dados no frontend e incluir arquivos CSS e JS.
Apresentação feita para o treinamento dos colaboradores da Vitrio.
Público alvo do treinamento: Analistas de conteúdo, Designers e equipe de Marketing Digital.
O principal assunto era uma breve introdução ao JavaScript ,jQuery e plugins. Entretanto, abrangemos outros tópicos, tais como: Desenvolvimento em Camadas, requisições, performance de web sites e algumas ferramentas.
Alto desempenho e escalabilidade em aplicações web utilizando banco de dados ...Vagner Santana
O documento discute o desenvolvimento de uma aplicação web escalável utilizando banco de dados não-relacional e programação orientada a eventos com Node.js para suportar alto desempenho e número de acessos. O objetivo é comparar desempenho de aplicações com bancos relacionais e não-relacionais como MongoDB.
O documento apresenta uma introdução ao Ajax, abordando:
1) O que é Ajax, seus benefícios e casos de uso;
2) Os fundamentos tecnológicos como XML, JavaScript, CSS e DOM;
3) Os passos para implementar uma requisição e resposta Ajax.
0 Introdução ao Desenvolvimento Web - ApresentaçãoMauro Duarte
Este documento apresenta um curso introdutório sobre desenvolvimento web que inclui 20 aulas sobre HTML, CSS e padrões web. O curso é ministrado pelo professor Mauro Duarte e inclui três provas para avaliar o conhecimento dos alunos.
O documento discute boas práticas de design de APIs, incluindo versionamento de APIs, definição de endpoints, status HTTP, tratamento de erros e ferramentas de documentação de APIs.
Palestra sobre Javascript que ministrei na III Mostra Científica do Senac-RS.
A palestra conta um pouco da história do Javascript e o porque da imcompreensão da linguagem. Também mostra o que é possível fazer e como desenvolver um código um profissional e levado a sério com Javascript.
O documento resume as principais razões para escolher o framework Ember.js em 2016, destacando suas características como convenção sobre configuração, separação de interesses entre componentes e o sistema de objetos inspirado em Ruby. Também descreve recursos como o Ember CLI para criação de projetos, o Ember Data para manipulação de modelos e o FastBoot para renderização do lado do servidor.
O documento apresenta uma introdução sobre AJAX, incluindo seu histórico, princípios, como funciona e casos de sucesso. AJAX permite atualizações assíncronas na página web usando uma combinação de tecnologias como JavaScript, XML e HTTP. Isso proporciona interfaces ricas e responsivas sem recarregar a página inteira. Exemplos bem-sucedidos incluem aplicativos da Google e ferramentas de gestão de projetos online.
1) O documento descreve as etapas para desenvolver uma aplicação web usando JSF e RichFaces, incluindo configuração do projeto, criação de templates, beans gerenciados e componentes de interface.
2) É explicado como implementar navegação baseada em estados usando beans gerenciados e tags JSF para exibir diferentes partes da aplicação.
3) Detalhes técnicos como configuração no web.xml, criação de utilitários, templates e componentes de menu são apresentados.
O documento discute o uso da tecnologia AJAX para criar sistemas web mais ricos e interativos, semelhantes a aplicativos desktop. Apresenta o framework Atlas da Microsoft, que facilita o desenvolvimento com AJAX seguindo padrões web. Fornece exemplos de uso do Atlas e discute as vantagens e desvantagens de se utilizar essa abordagem.
O documento discute o uso da tecnologia AJAX para criar sistemas web mais interativos e dinâmicos, semelhantes a aplicativos desktop. Apresenta o framework Atlas da Microsoft, que facilita o desenvolvimento com AJAX seguindo padrões web. Fornece exemplos de uso do Atlas e discute as vantagens e desvantagens de se utilizar essa abordagem.
Este documento apresenta as técnicas de programação para a web, incluindo conceitos gerais sobre aplicações web, criação de páginas usando HTML, CSS e JavaScript, e o uso de servlets e JSP para criar aplicações web dinâmicas usando o modelo MVC.
O documento apresenta uma introdução ao desenvolvimento web com .NET Core, descrevendo sua história, arquitetura, ferramentas e como transformar um projeto console em um site web usando o framework MVC.
O documento discute o desenvolvimento web com ASP.Net e MVC. Apresenta o .NET Framework, Visual Studio 2010, ASP.Net, Web Forms e MVC. Explica que MVC é um padrão de arquitetura que separa modelo, visão e controle, enquanto Web Forms é mais rápido para desenvolvimento inicial mas MVC oferece mais controle e testabilidade.
Moacir Casemiro apresenta suas credenciais e experiência em arquitetura e gestão de software, incluindo certificações como MCP, MCAD, MCTS e MCPD. Ele fornece seus contatos e detalhes sobre palestras e treinamentos sobre padrões de projeto, MVC e ASP.NET MVC.
1) O documento descreve uma aula sobre desenvolvimento web com Angular, incluindo a instalação das ferramentas necessárias e a criação de um projeto Angular simples para gerenciar listas de tarefas.
2) É apresentado um modelo de dados para armazenar as tarefas, um template HTML para exibir os dados e um componente para conectar o modelo ao template.
3) O fluxo básico de execução de uma aplicação Angular é explicado, ligando o bootstrap, componentes, templates e data binding.
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
O documento discute técnicas e recursos para desenvolvimento web em grandes escalas. Apresenta 14 regras para melhorar o desempenho do front-end e demonstra exemplos de CDN, cache, Ajax, aplicações em tempo real e outras ferramentas como Node.js. Também fornece dicas sobre configurações do IIS e bibliotecas de código aberto.
O documento introduz o ASP.NET, descrevendo-o como uma nova versão da tecnologia Active Server Pages para desenvolver páginas web dinâmicas de forma orientada a objetos. Resume os principais motivos para a criação do ASP.NET, como melhorias na estruturação do código, produtividade e desempenho, e apresenta novos recursos como controles do servidor, compilação das páginas e suporte a múltiplas linguagens.
A aula apresenta os conceitos fundamentais da Web 2.0, incluindo sua evolução, tecnologias e mercado de trabalho. Aborda tópicos como modelo de desenvolvimento em camadas, padrões da W3C e linguagens como HTML, CSS e JavaScript.
O documento discute o Google Web Toolkit (GWT), que permite aos desenvolvedores criarem aplicativos front-end complexos em Java que são compilados para JavaScript otimizado. O GWT fornece recursos como comunicação com servidores, componentes de interface do usuário reutilizáveis, e integração com ferramentas de desenvolvimento como Eclipse.
O documento apresenta uma introdução ao desenvolvimento web, cobrindo tópicos como: a história da web desde seu surgimento até os navegadores atuais; linguagens como HTML, CSS e JavaScript; e novas tecnologias como AJAX que tornaram os sites mais dinâmicos. O autor também discute as novas oportunidades de emprego geradas por essas tecnologias e dá dicas sobre como iniciar uma carreira em desenvolvimento web.
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
1) O documento discute como criar infraestrutura de sites para receber milhões de usuários de forma escalável e altamente disponível.
2) Problemas como ponto único de falha no DNS, desempenho do banco de dados, tamanho de arquivos e consultas externas são abordados.
3) A solução proposta inclui balanceamento de carga, replicação, cache, sistemas de arquivos distribuídos e alta disponibilidade em vários níveis.
O documento discute as tecnologias e conceitos fundamentais para o desenvolvimento web, começando com XHTML e CSS, então linguagens de programação, padrões web, sistemas de gerenciamento de conteúdo, frameworks, AJAX, otimização para mecanismos de busca, Java EE e serviços web. O objetivo é fornecer um roteiro para que leitores possam aprender desde os conceitos básicos até se tornarem profissionais de desenvolvimento web.
O documento discute a evolução da arquitetura de sistemas, desde modelos monolíticos até modelos distribuídos em nuvem. Apresenta diferentes modelos como cliente-servidor, web, n camadas e orientado a serviços. Também discute tecnologias como WebServices, REST e JSON que permitem a integração entre sistemas distribuídos.
O documento resume um curso sobre React, incluindo a configuração do ambiente com Node.js, JavaScript, componentes, estado, eventos, comunicação entre componentes e APIs. Ele também lista recursos adicionais para aprender conceitos avançados de React como routing, lifecycle e state management.
O documento apresenta Alexandre Tarifa e seu currículo, incluindo sua experiência com ASP.NET MVC. O documento também fornece uma breve introdução ao ASP.NET MVC, explicando sua arquitetura Model-View-Controller e características como roteamento, modelos, controladores e views.
Processamento de tweets em tempo real com Python, Django e Celery - TDC 2014Miguel Galves
O documento descreve o lançamento de uma ferramenta chamada Tuitômetro que permite acompanhar em tempo real a discussão sobre futebol brasileiro no Twitter. A ferramenta mede a "empolgação" dos torcedores com base na quantidade e assuntos dos tweets. O sistema faz o processamento dos tweets em tempo real usando Django, Celery e Redis.
O documento apresenta Redis, um banco de dados chave-valor em memória, e discute como ele pode ser usado para cache, gerenciamento de sessão, filas e outras aplicações. Ele explica como instalar e usar Redis, seus tipos de dados e comandos, e dá exemplos de como empresas grandes como Twitter e GitHub usam Redis em produção.
This document describes a new strategy for detecting single nucleotide polymorphisms (SNPs) in HIV genetic sequences. The strategy involves trimming low quality bases, correcting base calls using area ratio or average height ratio algorithms, filtering adjacent SNPs, and generating a consensus sequence from multiple alignments. The strategy was tested on 35 batches of HIV sequences and achieved true positive rates of 75.4% using area ratio and 52.6% using average height ratio, outperforming two external SNP detection tools, Polybayes and Polyphred. Future work will involve testing with larger datasets with higher coverage and sequences from more conserved organisms.
Comparison of Genomic DNA to cDNA Alignment MethodsMiguel Galves
This document compares different genomic DNA alignment methods, including a classic semi-global algorithm and heuristic tools like sim4 and Spidey. It analyzes the performance of these aligners on subsets of human gene and mRNA data, evaluating metrics like number of gaps, exon differences, sequence similarity, and runtime. The results show that the classic semi-global aligner produces very high-quality alignments but is slow, while sim4 achieves good accuracy faster than other external tools and outperforms them on most metrics.
Este documento descreve uma abordagem computacional para o estudo de polimorfismos de base única (SNPs). Ele discute as etapas do processo, incluindo alinhamento de sequências, detecção de SNPs e medição da correlação entre SNPs. O objetivo é desenvolver novas metodologias para cada etapa e integrá-las em um sistema de identificação de SNPs.
Uma abordagem computacional para a determinação de polimorfismos de base únicaMiguel Galves
Este documento resume uma abordagem computacional para determinação de polimorfismos de base única (SNPs) através de três etapas: alinhamento de seqüências, detecção de SNPs em cromatogramas e análise de correlações entre SNPs. Os resultados obtidos nas três etapas foram satisfatórios e demonstraram a viabilidade da abordagem proposta.
Django: Uso de frameworks ágeis para desenvolvimento webMiguel Galves
O documento discute o framework Django para desenvolvimento web, comparando-o com J2EE. Django é mais simples e focado em produtividade, enquanto J2EE é mais complexo. Embora linguagens dinâmicas como Python possam ter desempenho inferior, frameworks como Django permitem desenvolver aplicações escaláveis com o suporte de ferramentas externas como caches e balanceadores de carga.
O documento fornece uma introdução sobre Sistemas de Informação Geográfica (SIG), explicando conceitos básicos como georreferenciamento, modelos vetoriais e raster, projeções cartográficas, armazenamento de dados espaciais e protocolos de acesso como WMS e WFS.
O documento descreve experimentos de análise de dados em redes sociais para determinar notícias importantes, medir opiniões de torcedores em tempo real e verificar o valor de marcas com base no engajamento online. Os experimentos coletam dados do Twitter, Facebook e outras plataformas usando APIs para processar grandes volumes de dados.
2. Agenda
● Pequeno histórico da Web
● Modelo de funcionamento de um site
● Evolução da arquitetura de sites
● AJAX: Definição
● Motivo do sucesso
● Modelo de funcionamento
● Vantagens
● Problemas
● Ferramentas e libs de suporte
3. Recapitulando...
● 1969: Criação da ARPANET
● 1981: Criação da rede BITNET
– Rede de comunicação universitária
● 1983: Primeira rede TCP/IP operacional nos
EUA.
● Killer App dos primórdios da rede mundial de
computadores: e-mail
4. WWW
● 1991: Tim Berners Lee, do CERN, propõe
um protocolo para acesso e visualização de
arquivos baseado em Hipertexto.
● HTML
● HTTP
● Killer app: NCSA MosaicNCSA Mosaic
5. Anatomia simplificada de um
sistema HTTP/HTML
● Arquivos de texto formatados por meio de
tags (HTML).
● Sistema de localização de recursos
padronizado (URL).
● Links que permitem ir de um arquivo para o
outro (HTTP).
– “Navegação”
10. AJAX
● Asynchrounous JavaScript XML
● Paradigma de desenvolvimento de interfaces
Web
● Conjunto de tecnologias bem conhecidas
– Javascript + DOM
– XML
– CSS + HTML
● O elemento responsável pela mágica:
– XMLHTTPRequest
11. Quebrando alguns mitos
● AJAX não é uma tecnologia !
● AJAX não necessita de lib !
● AJAX não é dependente de tecnologia no
servidor !
● AJAX não modifica o protocolo de
comunicação entre cliente e servidor !
● Todas as tecnologias necessárias para
desenvolvimento AJAX estão embutidas nos
navegadores.
12. Mas peraí...
● HTML foi criado em 1991
● CSS foi proposto em 1994
● Javascript foi criado em 1995
● XML foi proposto em 1997
● XMLHTTPRequest foi adicionado ao IE 5.0
em 1999
● AJAX foi “criado” em 2005...
13. Mas peraí...
Qual o motivo doQual o motivo do
sucesso repentinosucesso repentino
??
14. Motivo número 1
● Marketing é a alma do negócio!!!
● Nome AJAX criado em 18 de fevereiro de
2005
– Jesse James Garret
– “Ajax: ANew Approach to Web Applications”
● Artigo propõe um novo paradigma de
interação entre usuário e sites web.
15. Motivo número 2
● Web 2.0
– Termo proposto pro Tim O'Reilly
● Web como plataforma de serviços e não
apenas como plataforma de conteúdo.
– Sistemas que agreguem valor ao usuário
● Maior interação do usuário com os sites.
– Usuário deixa de ser mero espectador.
17. Motivo número 3
● Popularização da banda larga
● Maior poder de processamento dos
computadores
18. Last but not least, motivo 4
● Killer app !!!
● Gmail
19. Resumindo
● Infraestrutura disponível.
● Nome criado.
● Momento de reflexão sobre web = ambiente
favorável.
● Aplicativo de sucesso mostrando as
possibilidades existentes.
21. Elementos chave
● Utiliza HTTP para comunicação
cliente/servidor.
● Resposta enviada em diversos formatos:
– XML
– JSON
– HTML
– Texto
22. Elementos chave
● Permite atualizar apenas uma parte da
página, via Javascript.
● Executa conexões assíncronas (background)
– Interface continua funcional entre envio de
requisição e recepção da resposta.
● Aumento do número de conexões, com
transferência de quantidade menor de dados
por conexão.
23. Elementos chave
● Requer uma camada extra para
processamento:Engine AJAX.
● Engine “tradicionalmente” escrito em
Javascript.
● Engine executa boa parte do processamento
antes delegados ao servidor e ao navegador.
25. Engine AJAX: Atribuições
● Pré-processamento de dados.
● Registro de handler de recepção.
● Envio da requisição.
● Pooling para verificar se processamento foi
efetuado.
● Recepção e processamento dos dados
recebidos, caso necessário.
● Rendering do resultado no navegador.
26. Engine AJAX:
Pré-Processamento
● Fase tradicionalmente de responsabilidade
do navegador.
● Coleta os dados a serem enviados ao
servidor:
– Dados de formulário
– Informações processadas pelo script.
27. Engine AJAX:
Pré-Processamento
● Converte os dados para o formato
apropriado para requisição.
– Substitui espaços por símbolo +
– Substitui acentos e símbolos especiais como
&,%,=,+ e outros pelo código UTF-8
● Monta String de requisição
– Formato de URL
– Par (chave, valor)
– Exemplo: nome=Miguel&sobrenome=Galves
28. Engine AJAX:Registro de
handler e envio de requisição
● Define uma função handler, que irá tratar a
resposta assim que esta estiver disponível.
● Define o objeto que será utilizado para envio
da requisição:
– IE: ActiveXObject(“Microsoft.XMLHTTP”)
– Firefox: XMLHTTPRequest()
● Define o método de envio (POST ou GET).
● Define cabeçalhos opcionais.
● Executa o envio.
29. Engine AJAX: Pooling
● Servidor não envia sinais ao navegador.
● Cliente tem que ficar em pooling, verificando
se resposta já foi enviada.
● Processo de pooling ocorre em background
– Thread separada, gerenciada pelo navegador.
● A cada ciclo de verificação, a função handler
é chamada.
– Handler deve verificar se a notificação
corresponde ao final do processamento, ou a
eventuais erros de envio/recepção
30. Engine AJAX: Recepção e
processamento dos dados
● Resposta pode vir em diversos
formatos:XML, HTML, JSON, ...
● XML e JSON: necessário extrair os dados da
árvore para uso pelo script.
● Decodificação de strings.
● Eventuais processamentos não efetuados
pelo servidor podem ser executados nesta
fase, com javascript.
31. Engine AJAX: Rendering
● Modifica a página exibida no navegador.
● Utiliza a interface de Javascript com CSS
para mexer em estilos.
● Utiliza a interface de Javascript com DOM
HTML para remover e inserir novos
elementos na página.
32. Vantagens de AJAX
● Transição entre estados mais leve e
eficiente.
● Aprimora a interatividade entre o usuário e o
site:
– Google Calendar
● Permite oferecer funcionalidades próximas
às funcionalidades oferecidas por aplicações
desktop.
– Yahoo! Mail = Outlook
– Google Spreadsheets = Microsoft Excel
33. Mas nem tudo são flores...
● Desenvolvimento de sites utilizando AJAX
podem ser muito trabalhosos.
● Existe uma série de condições de contorno
que devem ser levadas em conta quando se
desenvolve um site em AJAX.
34. Condições de Contorno
● Compatibilidade de browser
● Concorrência
● Modelo de interação usuário/site
– Amnésia
– Feedback
● Ferramentas de desenvolvimento
35. Compatibilidade de browser
● Navegadores apresentam incompatibilidades
em vários aspectos:
– Registro e tratamento de eventos
– Manipulação de DOM
– Manipulação do objeto de requisição
– CSS
● Desenvolvimento de sites compatíveis com
qualquer browser requerem uma boa
quantidade de testes e códigos específicos.
36. Concorrência
● XMLHTTPRequest permite a criação de
chamadas assíncronas concorrentes.
● Script deve ser capaz de tratar problemas de
concorrência:
– Por exemplo: um link clicado duas vezes por
enganos disparando duas requisições para um
mesmo evento.
37. Modelo de interação
usuário/site
● Modelo mental é muito importante na
interação de uma pessoa com um software,
site ou objeto.
● Modelo mental relacionado à navegação na
internet bem conhecido:
– Links, progressão darequisição, espera da
resposta, histórico.
● AJAX pode modificar alguns desses
modelos.
38. Modelo de Interação:
Amnésia
● Modelo de navegação web: páginas com
links, levando de uma para outra.
● Cria-se um histórico de páginas visitadas.
– Página visitada = URL único.
● Botões Back e Forward permitem voltar para
página anterior.
39. Modelo de Interação:
Amnésia
● Com Ajax, desenvolvedores tendem a criar
sites com uma página só.
● Navegador não mantém histórico de
navegação. Site com amnésia.
– Back e forward inúteis.
– Fonte de erros de navegação.
● Desenvolvedores tem que implementar o
mecanismo de histórico manualmente.
41. Modelo de Interação:
Feedback
● Este feedback não acontece quando a
requisição é assíncrona.
● Desenvolvedor deve prover o feedback.
42. Ferramentas de
desenvolvimento
● Por ser uma metodologia nova, não existem
ferramentas que abrangem todo o fluxo de
trabalho de forma adequada.
● Ferramentas necessárias:
– Design
– Programação Javascript
– Debbuger
43. Debuggers: Firebug
● Plugin para Firefox
● Exibe mensagens de erros de execução
Javascript.
● Permite executar passo-a-passo scripts
carregados no navegador.
● Permite analisar DOM, Eventos, Layout e
CSS da página.
● Mostra a String de requisição enviada ao
servidor e o XML recebido.
44. Debuggers: Webdeveloper
● Plugin para Firefox
● Permite analisar formulários, e modificar
modo de envio de requisição (POST/GET).
● Permite análise de CSS, destaca elementos
na página, e suporta edição de CSS online.
● Exibe código HTML gerado em runtime por
scripts (extremamente útil !!!).
45. Bibliotecas
● Existe uma grande quantidade de bibliotecas
sendo desenvolvidos para facilitar o
desenvolvimento de aplicações web.
● Bibliotecas oferecem tipos de
funcionalidades diferentes:
– Dojo e Rialto
– OpenRico e Prototype
– Google Web Toolkit
– OpenLaszlo, TurboGears, Ruby On Rails