SlideShare uma empresa Scribd logo
Café com Tapioca 2007

      Implementação MVC usando Ajax

           Frameworks
           Melhores práticas do XHR
           Implementando MVC
           Javascript Orientado a Objetos




Christiano Milfont – cmilfont@gmail.com
Frameworks
Frameworks
● Um Framework Ajax utiliza as tecnologias CSS (camada de
formatação da apresentação), XHTML (camada de estrutura da
apresentação), XML (dados a serem manipulados), Javascript
(camada de controle), DOM ou JSON (especificações do
formato dos dados) , o objeto XMLHttpRequest (que fornece
conexões assíncronas) e extende essa tecnologias padrões
com componentes de eventos, efeitos, Drag'n'Drop, entre
outros.
●
  Os benefícios de se usar um Framework Ajax é o
encapsulamento da complexidade das tecnologias
necessárias, fornecendo um só mecanismo Cross Browser
que permita a utilização do ajax com acessibilidade
semelhante ao ambiente desktop além de facilitar o
tratamento dos dados nas as camadas físicas entre o lado
cliente e o lado servidor.
Tipos de Frameworks
●Javascript Multipurpose: frameworks que fornecessem
componentes sobre o conjunto de todas as tecnologias web
no lado cliente e mecanismos de acesso ao lado servidor,
como o encapsulamento do tratamento dos dados.
●Javascript Remote: frameworks que são especialistas no
encapsulamento do mecanismo de troca de objetos entre as
camadas físicas.

●
  Javascript Specialized: frameworks que são especialistas em
somente um determinado comportamento ou mecanismo do
conjunto de tecnologias web, como por exemplo:
especialistas em efeitos ou somente na extensão do
javascript.
Javascript Multipurpose
    Frameworks...


                          Javascript Remoting
                             Frameworks...




Javascript Specialised
   Frameworks...
Melhores práticas do XHR

1 Namespaces contra funções globais
2   Detecção otimizada
3   Bridge encapsula diferenças de Cross Browser
4   Delegação de eventos
5   New School suplanta Old School
6   Separação em camadas
7   Orientação a objetos contra prog. funcional
8   DOM contra innerHTML
Anatomia de uma operação Ajax ...
Anatomia de uma operação Ajax ...

1 Ocorre um evento no cliente
2   Um XHR é instanciado
3   A instância é configurada
4   Solicita uma conexão assíncrona
5   A requisição é processada pelo servidor
6   O servidor retorna um XML
7   O XHR chama o callback e repassa o XML
8   O HTML DOM processa o XML.
1. Ocorre um evento no cliente
●   Um evento mapeado é acionado no cliente:
2. Um XHR é instanciado

●Instancia uma versão do objeto XHR dependendo do
Browser, a Microsoft (criadora do objeto) tem algumas
implementações dependendo da versão do Internet Explorer.
3. A instância é configurada

●O método “open” do objeto XHR cria uma conexão e recebe
como parâmetros: o método de conexão (“POST” ou “GET”);
a “url” do servidor; e um booleano que indica se a conexão é
assíncrona (TRUE) ou síncrona (FALSE).

●
 Associa-se uma função “callback” que processará o
resultado do servidor.

●   Submete os dados caso a conexão seja POST.
4. Solicita uma conexão assíncrona

●Quando a propriedade readStatedo objeto XHR recebe o
valor 4 a conexão foi terminada, podemos processar
diretamente ou somente quando a propriedade status receber
o valor “200”.
5. A requisição é processada pelo
                     servidor
●
 O servidor processa uma requisição como outra qualquer e
devolve um XML ou um texto.


        6. O servidor retorna um XML ou
                    um texto
    ●É comum utilizar na resposta um texto com o objeto no
    formato JSON para ser processado na função callback.
7 e 8. Callback processa retorno
●
    A função callback processa o retorno utilizando DOM.
Métodos e propriedades do XHR
Status do readyState     Métodos
0: Não inicializado.     open(mode, url, boolean): inicializa a
1: Conexão estabelecida. conexão e recebe os parametros mode
2: Requisição recebida. (conexão), url e booleano (síncrono ou
3: Em processo.          assíncrono).
4: Finalizada.           send("string"): Null para GET ou uma
                         String dos parametros e valores para
                          o POST.
Atributos
readyState: Troca valores de 0 a 4 que indicam que está “Ready”.
Status: Códigos de status do response HTTP.
responseText: Processa a resposta como texto.
responseXML: Processa a resposta como um objeto XML.
onreadystatechange: Propriedade que recebe uma função que
 é invocada quando o evento readystatechange é disparado.
Implementação MVC usando Ajax
... a visão observa o
                 comportamento do
MVC Original         modelo para
                     renderizar a
                      interface ...

                       ... o controlador
                    responde a eventos e
                    solicita modificações
                         no modelo ...

               ... o modelo gerencia a
                 lógica de negócios e
               fornece API de acesso.
Migração para web ...
... a visão não
                    enxerga o
MVC Model 2    comportamento do
                    modelo ...


                      ... o controlador
                   assume parcialmente
                     a renderização da
                            visão ...

              ... o modelo gerencia a
                lógica de negócios e
              fornece API de acesso.
Struts ...




Se aplica a
WebWorks
 Mentawai
SpringFlow
  JSF ...
LoginAction                            Sem fronteiras
                                          entre as
              LoginForm                  camadas
                                         lógicas...
                          LoginVO



                                    LoginBO



                                              LoginDAO
                                                         DB
Back to the future...
   MVC Model 3?         ... a visão escuta
                           respostas do
                             modelo ...


                    ... o controlador devolve
                       responsbilidades da
                              visão...


                    ... o modelo gerencia a
                      lógica de negócios e
                    fornece API de acesso.
Javascript Orientado a Objetos




 Christiano Milfont
Introdução
“Procedural code gets information then makes decisions.
Object-oriented code tells objects to do things.”
                       Alec Sharp
Prototype-based
JSON
  (Javascript
Object Notation)
Factory Vs Construtor Vs Prototype
Private vs Public
Polimorfismo
Associação
Overloading e Overriding
Alternativa de Overloading
Herança via Object Masquerading
Herança via call e apply




call(Objeto, argumento1, argumento2, ...)
apply(Objeto, array-de-argumentos)
Herança via call e apply - cont.
Herança via Prototype
Para saber mais...
https://cejug.dev.java.net/

Mais conteúdo relacionado

PPTX
Conceitos de Java Web
PDF
Framework struts2v2.5
PDF
Tutorial +login+mvc
PDF
Java Web - MVC básico com JSP e Servlets
PPT
introdução a ajax
DOCX
Camadas
PDF
Apostilava Java EE 5 - 2007
PDF
Apostila Java Web com JSF, JPA e Primefaces
Conceitos de Java Web
Framework struts2v2.5
Tutorial +login+mvc
Java Web - MVC básico com JSP e Servlets
introdução a ajax
Camadas
Apostilava Java EE 5 - 2007
Apostila Java Web com JSF, JPA e Primefaces

Destaque (9)

PDF
A Iniciativa JEDI, O ensino de Java livre e gratuito
PPT
Design Patterns - Conhecendo os padrões de projeto
PDF
Pug2009 documento final
PPT
PUG 2009
DOCX
Rosalina rocha araújo moraes minicurriculo
PDF
Testes de Unidade com Junit
PDF
Anatomia do JSF – JavaServer Faces
PDF
Conhecendo os Padrões De Projetos
PPTX
Spring cloud + netflix oss
A Iniciativa JEDI, O ensino de Java livre e gratuito
Design Patterns - Conhecendo os padrões de projeto
Pug2009 documento final
PUG 2009
Rosalina rocha araújo moraes minicurriculo
Testes de Unidade com Junit
Anatomia do JSF – JavaServer Faces
Conhecendo os Padrões De Projetos
Spring cloud + netflix oss
Anúncio

Semelhante a Implementando MVC com AJAX (20)

PDF
Web 2.0 e AJAX - Parte 2 / 3
ODP
Ajaxificando
PDF
Ajax O Objeto Xml Http Request Parte 2
PDF
Ajax O Objeto Xml Http Request Parte 1
PPT
PHP e AJAX: do Request ao Framework
PPS
Conceitos de Ajax
PDF
compreensão geral para estruturar uma api
PPT
PHP e AJAX: do Request ao Framework
PPT
o que é ajax
PPTX
Palestra Sobre REST
ODP
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
PPT
PHP e Ajax com XAJAX
PDF
Aplicações Web com AJAX - Er Galvão Abbott
PPTX
365on Lab - Asp.Net MVC
PPT
Programação Web com Zend Framework e Ajax com Dojo
PDF
Tutorial de ajax
PDF
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
PDF
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
PDF
Desenvolvimento Web com CakePHP
PPT
Frameworks Ajax
Web 2.0 e AJAX - Parte 2 / 3
Ajaxificando
Ajax O Objeto Xml Http Request Parte 2
Ajax O Objeto Xml Http Request Parte 1
PHP e AJAX: do Request ao Framework
Conceitos de Ajax
compreensão geral para estruturar uma api
PHP e AJAX: do Request ao Framework
o que é ajax
Palestra Sobre REST
Minicurso Ajax - 5. Semana de Informática PUC Minas São Gabriel
PHP e Ajax com XAJAX
Aplicações Web com AJAX - Er Galvão Abbott
365on Lab - Asp.Net MVC
Programação Web com Zend Framework e Ajax com Dojo
Tutorial de ajax
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Desenvolvimento Web com CakePHP
Frameworks Ajax
Anúncio

Último (20)

PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Aula sobre banco de dados com firebase db
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
Émile Durkheim slide elaborado muito bom
Aula sobre desenvolvimento de aplicativos
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Aula sobre banco de dados com firebase db
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 9 - (Threads) Multitarefas.pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
COBITxITIL-Entenda as diferença em uso governança TI

Implementando MVC com AJAX

  • 1. Café com Tapioca 2007 Implementação MVC usando Ajax Frameworks Melhores práticas do XHR Implementando MVC Javascript Orientado a Objetos Christiano Milfont – cmilfont@gmail.com
  • 3. Frameworks ● Um Framework Ajax utiliza as tecnologias CSS (camada de formatação da apresentação), XHTML (camada de estrutura da apresentação), XML (dados a serem manipulados), Javascript (camada de controle), DOM ou JSON (especificações do formato dos dados) , o objeto XMLHttpRequest (que fornece conexões assíncronas) e extende essa tecnologias padrões com componentes de eventos, efeitos, Drag'n'Drop, entre outros. ● Os benefícios de se usar um Framework Ajax é o encapsulamento da complexidade das tecnologias necessárias, fornecendo um só mecanismo Cross Browser que permita a utilização do ajax com acessibilidade semelhante ao ambiente desktop além de facilitar o tratamento dos dados nas as camadas físicas entre o lado cliente e o lado servidor.
  • 4. Tipos de Frameworks ●Javascript Multipurpose: frameworks que fornecessem componentes sobre o conjunto de todas as tecnologias web no lado cliente e mecanismos de acesso ao lado servidor, como o encapsulamento do tratamento dos dados. ●Javascript Remote: frameworks que são especialistas no encapsulamento do mecanismo de troca de objetos entre as camadas físicas. ● Javascript Specialized: frameworks que são especialistas em somente um determinado comportamento ou mecanismo do conjunto de tecnologias web, como por exemplo: especialistas em efeitos ou somente na extensão do javascript.
  • 5. Javascript Multipurpose Frameworks... Javascript Remoting Frameworks... Javascript Specialised Frameworks...
  • 6. Melhores práticas do XHR 1 Namespaces contra funções globais 2 Detecção otimizada 3 Bridge encapsula diferenças de Cross Browser 4 Delegação de eventos 5 New School suplanta Old School 6 Separação em camadas 7 Orientação a objetos contra prog. funcional 8 DOM contra innerHTML
  • 7. Anatomia de uma operação Ajax ...
  • 8. Anatomia de uma operação Ajax ... 1 Ocorre um evento no cliente 2 Um XHR é instanciado 3 A instância é configurada 4 Solicita uma conexão assíncrona 5 A requisição é processada pelo servidor 6 O servidor retorna um XML 7 O XHR chama o callback e repassa o XML 8 O HTML DOM processa o XML.
  • 9. 1. Ocorre um evento no cliente ● Um evento mapeado é acionado no cliente:
  • 10. 2. Um XHR é instanciado ●Instancia uma versão do objeto XHR dependendo do Browser, a Microsoft (criadora do objeto) tem algumas implementações dependendo da versão do Internet Explorer.
  • 11. 3. A instância é configurada ●O método “open” do objeto XHR cria uma conexão e recebe como parâmetros: o método de conexão (“POST” ou “GET”); a “url” do servidor; e um booleano que indica se a conexão é assíncrona (TRUE) ou síncrona (FALSE). ● Associa-se uma função “callback” que processará o resultado do servidor. ● Submete os dados caso a conexão seja POST.
  • 12. 4. Solicita uma conexão assíncrona ●Quando a propriedade readStatedo objeto XHR recebe o valor 4 a conexão foi terminada, podemos processar diretamente ou somente quando a propriedade status receber o valor “200”.
  • 13. 5. A requisição é processada pelo servidor ● O servidor processa uma requisição como outra qualquer e devolve um XML ou um texto. 6. O servidor retorna um XML ou um texto ●É comum utilizar na resposta um texto com o objeto no formato JSON para ser processado na função callback.
  • 14. 7 e 8. Callback processa retorno ● A função callback processa o retorno utilizando DOM.
  • 15. Métodos e propriedades do XHR Status do readyState Métodos 0: Não inicializado. open(mode, url, boolean): inicializa a 1: Conexão estabelecida. conexão e recebe os parametros mode 2: Requisição recebida. (conexão), url e booleano (síncrono ou 3: Em processo. assíncrono). 4: Finalizada. send("string"): Null para GET ou uma String dos parametros e valores para o POST. Atributos readyState: Troca valores de 0 a 4 que indicam que está “Ready”. Status: Códigos de status do response HTTP. responseText: Processa a resposta como texto. responseXML: Processa a resposta como um objeto XML. onreadystatechange: Propriedade que recebe uma função que é invocada quando o evento readystatechange é disparado.
  • 17. ... a visão observa o comportamento do MVC Original modelo para renderizar a interface ... ... o controlador responde a eventos e solicita modificações no modelo ... ... o modelo gerencia a lógica de negócios e fornece API de acesso.
  • 19. ... a visão não enxerga o MVC Model 2 comportamento do modelo ... ... o controlador assume parcialmente a renderização da visão ... ... o modelo gerencia a lógica de negócios e fornece API de acesso.
  • 20. Struts ... Se aplica a WebWorks Mentawai SpringFlow JSF ...
  • 21. LoginAction Sem fronteiras entre as LoginForm camadas lógicas... LoginVO LoginBO LoginDAO DB
  • 22. Back to the future... MVC Model 3? ... a visão escuta respostas do modelo ... ... o controlador devolve responsbilidades da visão... ... o modelo gerencia a lógica de negócios e fornece API de acesso.
  • 23. Javascript Orientado a Objetos Christiano Milfont
  • 24. Introdução “Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.” Alec Sharp
  • 27. Factory Vs Construtor Vs Prototype
  • 33. Herança via Object Masquerading
  • 34. Herança via call e apply call(Objeto, argumento1, argumento2, ...) apply(Objeto, array-de-argumentos)
  • 35. Herança via call e apply - cont.