PHP e AJAX com XAJAX Rafael Machado Dohms Coordenação PHPDF
Conteúdo Pré-Requisitos O que é AJAX? Como funciona? O Objeto XMLHttpRequest Onde devo usar? Quem está usando? Caminhos para o aprendizado Prática 1: no braço Prática 2: XAJAX Outras soluções e comentários
Pré-Requisitos Javascript DOM (Document Object Model) Javascript com XML PHP com XML MySQL e conexão com Banco de Dados Noções de OO
Quem sou? Rafael Machado Dohms é Engenheiro da Computação (DF-13735/D) formado pelo Centro Universitário de Brasília, natural de Porto Alegre/RS. Atua na área de desenvolvimento e implementação de projetos de sistemas web-based, responsável pela gerência de desenvolvimento do Portal ComuniWeb. 8 anos de experiência em PHP Membro da coordenação do PHPDF
Objetivo Apresentar a técnica de programação conhecida como AJAX, apresentando sua forma de trabalho e demonstrando como aproveitar a biblioteca XAJAX.
AJAX- O que é? Não é uma tecnologia nova! Nova forma de se utilizar tecnologias já consolidadas: CSS, DOM, JS e o XMLHttpRequest Asyncronous Javascript And XML Envio assíncrono de dados Grandes por míudos: Enviar e receber dados novos sem recarregar a página (background)
Como funciona AJAX? Apache IIS Lighthttp... PHP ASP JSP Ruby ...
O XMLHttpRequest Histórico 2000 - Criado pela Microsoft para o Outlook WebAccess 2002 – Incorporado no Mozilla 2006 – Publicado o primeiro Draft na W3C
XMLHttpRequest Propriedades readyState 0 = uninitialized (não inicializado) 1 = loading (carregando) 2 = loaded (carregado) 3 = interactive (interagindo) 4 = complete (pronto) responseText responseXML Status (200,404,403...) statusText (Not found…) onreadystatechange -- evento
XMLHttpRequest Métodos open ("method","URL",async,"uname","pswd") Ex: open(“POST”,”arquivo.php”,true); setRequestHeader ("label","value") send (content) getResponseHeader("headername") getAllResponseHeaders() abort()
Onde usar e onde não? Use: Auto-complete Validação complexa de dados Criação de subitens de um item maior Carregar dados externos de acordo com parâmetros em tempo real Não use: navegação
Quem já usa? Google GMail Google Calendar Google Maps Sistemas De votação De Cálculo de Transporte
Caminhos ao Aprendizado Sem utilizar bibliotecas/frameworks Vantagens: Maio domínio da ferramenta Maior controle (como e onde) Desvantagens Tempo e esforço Utilizando bibliotecas/frameworks Vantagens Produtividade acelerada JavaScript opcional Menos pré-requisitos Desvantagem Refém da biblioteca Pouco conhecimento do “por trás das cortinas”
Prática 1: no braço Objetivo Mural de recados Funcionalidades Adição de mensagens Visualização de mensagens Material PHP Base de dados O browser FireFox possui uma extensão (componente) chamado FireBug que ajuda muito a debugar sites com AJAX, pois mostra todas requisições feitas, o que foi enviado e o que foi recebido
Prática 1
Prática 1 Funções Javascript criaRequest Cria uma instância do objeto XmlHttpRequest enviaDados() Reúne os dados Usa o Request para enviar os dados por POST Define função de retorno recebeDados() Verifica estado Recebe valores Altera DOM
Prática 1 Funções PHP gravaDepoimento Recebe Dados do POST Grava no banco montaTemplate Monta template Monta XML de resposta Retorna dados
Prática 1 Retorno XML <?xml version= &quot;1.0&quot; encoding= &quot;iso-8859-1&quot; ?> <response> <erro> 0/1 </erro> <item id= &quot;1&quot; > Retorno em HTML ou Texto </item> </response>
Prática 1
O XAJAX O que é? Biblioteca em PHP, que implementa as funções javascript necessárias Onde? http://www.xajaxproject.org/
Prática 2: XAJAX Objetivo Mural de recados Funcionalidades Adição de mensagens Visualização de mensagens Remoção Material PHP XAJAX Base de dados
Prática 2
Prática 2 Funções XAJAX gravaDepoimento Recebe os dados Validação dos dados Insere no banco Gera retorno delDepoimento Recebe id do depoimento Deleta do banco Define ações javascript
Outras estradas e Comentários Bibliotecas Javascript Prototype PHP SAJAX (http://www.modernmethod.com/sajax/) PEAR::HTML_AJAX (http://pear.php.net/package/HTML_AJAX) Xajax (http://www.xajaxproject.org/) Soluções Javascript Remote Invocation XML RPC Flash Remoting Segurança??
Dúvidas?
Contato Obrigado! Aproveitem o evento Blog www.rafaeldohms.com.br Email [email_address] Links FireFox : http://www.getfirefox.com/ FireBug : http:// www.getfirebug.com/ Xajax : http://www.xajaxproject.org/

PHP e Ajax com XAJAX

  • 1.
    PHP e AJAXcom XAJAX Rafael Machado Dohms Coordenação PHPDF
  • 2.
    Conteúdo Pré-Requisitos Oque é AJAX? Como funciona? O Objeto XMLHttpRequest Onde devo usar? Quem está usando? Caminhos para o aprendizado Prática 1: no braço Prática 2: XAJAX Outras soluções e comentários
  • 3.
    Pré-Requisitos Javascript DOM(Document Object Model) Javascript com XML PHP com XML MySQL e conexão com Banco de Dados Noções de OO
  • 4.
    Quem sou? RafaelMachado Dohms é Engenheiro da Computação (DF-13735/D) formado pelo Centro Universitário de Brasília, natural de Porto Alegre/RS. Atua na área de desenvolvimento e implementação de projetos de sistemas web-based, responsável pela gerência de desenvolvimento do Portal ComuniWeb. 8 anos de experiência em PHP Membro da coordenação do PHPDF
  • 5.
    Objetivo Apresentar atécnica de programação conhecida como AJAX, apresentando sua forma de trabalho e demonstrando como aproveitar a biblioteca XAJAX.
  • 6.
    AJAX- O queé? Não é uma tecnologia nova! Nova forma de se utilizar tecnologias já consolidadas: CSS, DOM, JS e o XMLHttpRequest Asyncronous Javascript And XML Envio assíncrono de dados Grandes por míudos: Enviar e receber dados novos sem recarregar a página (background)
  • 7.
    Como funciona AJAX?Apache IIS Lighthttp... PHP ASP JSP Ruby ...
  • 8.
    O XMLHttpRequest Histórico2000 - Criado pela Microsoft para o Outlook WebAccess 2002 – Incorporado no Mozilla 2006 – Publicado o primeiro Draft na W3C
  • 9.
    XMLHttpRequest Propriedades readyState 0 = uninitialized (não inicializado) 1 = loading (carregando) 2 = loaded (carregado) 3 = interactive (interagindo) 4 = complete (pronto) responseText responseXML Status (200,404,403...) statusText (Not found…) onreadystatechange -- evento
  • 10.
    XMLHttpRequest Métodos open(&quot;method&quot;,&quot;URL&quot;,async,&quot;uname&quot;,&quot;pswd&quot;) Ex: open(“POST”,”arquivo.php”,true); setRequestHeader (&quot;label&quot;,&quot;value&quot;) send (content) getResponseHeader(&quot;headername&quot;) getAllResponseHeaders() abort()
  • 11.
    Onde usar eonde não? Use: Auto-complete Validação complexa de dados Criação de subitens de um item maior Carregar dados externos de acordo com parâmetros em tempo real Não use: navegação
  • 12.
    Quem já usa?Google GMail Google Calendar Google Maps Sistemas De votação De Cálculo de Transporte
  • 13.
    Caminhos ao AprendizadoSem utilizar bibliotecas/frameworks Vantagens: Maio domínio da ferramenta Maior controle (como e onde) Desvantagens Tempo e esforço Utilizando bibliotecas/frameworks Vantagens Produtividade acelerada JavaScript opcional Menos pré-requisitos Desvantagem Refém da biblioteca Pouco conhecimento do “por trás das cortinas”
  • 14.
    Prática 1: nobraço Objetivo Mural de recados Funcionalidades Adição de mensagens Visualização de mensagens Material PHP Base de dados O browser FireFox possui uma extensão (componente) chamado FireBug que ajuda muito a debugar sites com AJAX, pois mostra todas requisições feitas, o que foi enviado e o que foi recebido
  • 15.
  • 16.
    Prática 1 FunçõesJavascript criaRequest Cria uma instância do objeto XmlHttpRequest enviaDados() Reúne os dados Usa o Request para enviar os dados por POST Define função de retorno recebeDados() Verifica estado Recebe valores Altera DOM
  • 17.
    Prática 1 FunçõesPHP gravaDepoimento Recebe Dados do POST Grava no banco montaTemplate Monta template Monta XML de resposta Retorna dados
  • 18.
    Prática 1 RetornoXML <?xml version= &quot;1.0&quot; encoding= &quot;iso-8859-1&quot; ?> <response> <erro> 0/1 </erro> <item id= &quot;1&quot; > Retorno em HTML ou Texto </item> </response>
  • 19.
  • 20.
    O XAJAX Oque é? Biblioteca em PHP, que implementa as funções javascript necessárias Onde? http://www.xajaxproject.org/
  • 21.
    Prática 2: XAJAXObjetivo Mural de recados Funcionalidades Adição de mensagens Visualização de mensagens Remoção Material PHP XAJAX Base de dados
  • 22.
  • 23.
    Prática 2 FunçõesXAJAX gravaDepoimento Recebe os dados Validação dos dados Insere no banco Gera retorno delDepoimento Recebe id do depoimento Deleta do banco Define ações javascript
  • 24.
    Outras estradas eComentários Bibliotecas Javascript Prototype PHP SAJAX (http://www.modernmethod.com/sajax/) PEAR::HTML_AJAX (http://pear.php.net/package/HTML_AJAX) Xajax (http://www.xajaxproject.org/) Soluções Javascript Remote Invocation XML RPC Flash Remoting Segurança??
  • 25.
  • 26.
    Contato Obrigado! Aproveitemo evento Blog www.rafaeldohms.com.br Email [email_address] Links FireFox : http://www.getfirefox.com/ FireBug : http:// www.getfirebug.com/ Xajax : http://www.xajaxproject.org/