Академический Документы
Профессиональный Документы
Культура Документы
programacin de la plataforma
Web 2.0:
Ajax
David Arango, Simplelgica
Web 2.0
Tecnologas
pensadas
para la
gente
Participacin
Participacin
Reducir barreras
Mejorar la interaccin
RIAs
?
JavaScript
And
XML
Ajax no es una tecnologa.
Es realmente muchas
tecnologas, cada una
floreciendo por su propio
mrito, unindose en
poderosas nuevas formas.
Jesse James Garrett
http://adaptivepath.com/publications/essays/archives/000385.php
Standards-based presentation using
XHTML and CSS
Standards-based presentation using
XHTML and CSS
Dynamic display and interaction
using the Document Object Model
Standards-based presentation using
XHTML and CSS
Dynamic display and interaction
using the Document Object Model
Data interchange and manipulation
using XML and XSLT
Standards-based presentation using
XHTML and CSS
Dynamic display and interaction
using the Document Object Model
Data interchange and manipulation
using XML and XSLT
Asynchronous data retrieval using
XMLHttpRequest
Standards-based presentation using
XHTML and CSS
Dynamic display and interaction
using the Document Object Model
Data interchange and manipulation
using XML and XSLT
Asynchronous data retrieval using
XMLHttpRequest
And JavaScript binding everything
together.
Mejor con ejemplos
Autocompletado
Autocompletado
Edicin en lnea
Carga asincrnica
Formularios
asincrnicos
Calificacin de
contenidos
Aplicaciones que usan
Ajax
http://www.basecamphq.com/
http://clientesdesimplelogica.projectpath.com/projects/600838/todos#
Actualizacin automtica
Formularios
Validacin
Subida de archivos...
http://flickr.com/
0 = sin inicializar
1 = cargando
2 = cargado
3 = interactivo
4 = completado
Dnde estn los datos?
Y una ltima cosa
Hagamos una peticin
GET sencilla
Haciendo peticiones
POST
Peticiones HEAD
Texto plano
CSV
JSON
Fragmentos HTML
Datos en binario, imgenes...
HTML
HTML
AHAH
Mucho ms simple
Uso intensivo de InnerHTML
XML
JSON
JSON
Douglas Crockford
JavaScript Object
Notation
Ligero
Implementaciones en
todos los lenguajes
importantes
Qu usar?
Depende de la aplicacin, usa el sentido
comn
XML est en declive, salvo en entornos Java
JSON va en aumento
Diferencias de
implementacin
Anlisis de la
peticin
Respuesta HTML
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta HTML
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta HTML
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta HTML
En la prctica...
Utilizamos una cabecera HTTP para marcar
la peticin Ajax
Comprobando del lado
del servidor (PHP)
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta XML
JavaScript
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta XML
JavaScript
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta XML
JavaScript
Dilogo HTTP
Cliente
(navegador) Servidor
Anlisis de la
peticin
Respuesta XML
JavaScript
Usemos HTTP
Enviemos los cdigos HTTP que
correspodan (a veces no es obvio,
redirecciones)
Usemos pginas de error personalizadas
(Ajax tambin se beneficia)
Usemos las cabeceras HTTP
Hagamos clientes HTTP respetuosos
Beneficios
Algunos agentes de
usuario no tienen
soporte JavaScript, o su
soporte es limitado
JavaScript es un dolor
Informacin sobre la
Presentacin presentacin visual y/o
auditiva de la pgina
Modificaciones a la forma
Comportamiento habitual de interactuar con la
pgina
Se trata de degradar
adecuadamente
Cul es mejor?
Separacin entre capas
Contenido y presentacin
Contenido y comportamiento
Comportamiento y presentacin
Buenas prcticas (4)
Encapsula tu cdigo para hacer amigos
e impresionar a la gente
Di NO a las variables
globales
Object literal notation
Libreras JavaScript
jQuery
Prototype + Script.aculo.us
Dojo
Moo Tools
...
Porqu usar una
librera?
Abstraccin sobre las diferencias de
implementacin en navegadores
Cdigo normalmente muy contrastado
Mejores mtodos de acceso a DOM
Abstraccin sobre Ajax
Efectos visuales incorporados
Porqu no usarlas?
Drupal
Ruby On Rails
El patrn MVC en la Web
Javascript home-made
Utilizar una librera
Usar respond_to a fondo
Plugins supuestamente accesibles (UJS)
Conclusiones