IV. Lenguajes de script en cliente

Anuncio
IV. Lenguajes de script en cliente
1. Motivación
2. Funcionamiento
3. AJAX
Motivación (I)
z Hasta
ahora:
– Cada “evento” es procesado por el servidor.
Servidor
WWW
Curso 2008/2009
Arquitecturas Distribuidas
2
Motivación (II)
z Hasta
ahora:
– Cada “evento” sólo puede ser procesador por el
servidor.
Servidor
WWW
Curso 2008/2009
Arquitecturas Distribuidas
3
Motivación (III)
z
Hasta ahora:
– Realmente, pocos “eventos” Ir a un enlace.
z
Rellenar datos a través de un formulario para conseguir una
nueva página.
– Interacción con el usuario muy limitada.
z
z
Limita el desarrollo de interfaces de usuario ricas y degrada la
“experiencia” del usuario. Las aplicaciones de escritorio
cuentan con ventajas en ese sentido.
No permite el desarrollo de aplicaciones que devuelvan un
contenido en función de la actividad del usuario
Curso 2008/2009
Arquitecturas Distribuidas
4
Motivación (IV)
z
Solución:
– Las páginas deben contener instrucciones que se
ejecuten en el lado del cliente.
z
z
Java Æ Lenguaje “pesado”, pero compatible entre equipos. Se
usa un plug-in: se invoca el ejecutable de la máquina virtual de
Java, el Java Runtime Environment instalado en el equipo.
JavaScript y similares Æ Lenguaje “ligero”, pero con
incompatibilidades entre equipos. Lenguaje interpretado.
Intérprete implementado por el navegador.
Curso 2008/2009
Arquitecturas Distribuidas
5
Funcionamiento (I)
z Javascript
y similares:
– Lenguajes orientados a eventos:
z Cargar pagina
z Ratón sobre un elemento
z Ratón hace click sobre un elemento
z Temporizadores
z Etc
Curso 2008/2009
Arquitecturas Distribuidas
6
Funcionamiento (II)
z Javascript
y similares:
– Al capturar un evento, se invoca un trozo de
código (script). Ese código puede hacer
cualquier tipo de procesado.
– Lo normal es que cambie el valor de algún
atributo en la página, que compruebe si los
valores de un formulario son correctos antes de
enviarlos, etc.
Curso 2008/2009
Arquitecturas Distribuidas
7
Funcionamiento (III)
<html>
<script language="JavaScript">
<!-function dihola() {
alert("Hola a todos!");
}
-->
</script>
<body onLoad="dihola();">
</body>
</html>
Curso 2008/2009
Arquitecturas Distribuidas
8
Funcionamiento (IV)
<html>
<script language="JavaScript">
<!-function dihola() {
alert("Hola a todos!");
}
-->
</script>
<body onLoad="dihola();">
</body>
Código de
procesamiento
</html>
EVENTO
Curso 2008/2009
Arquitecturas Distribuidas
9
Funcionamiento (V)
<html>
<script language="JavaScript">
<!-function dihola() {
alert("Hola a todos!");
}
-->
</script>
<body onLoad="dihola();">
</body>
Código de
procesamiento
</html>
EVENTO
Curso 2008/2009
Arquitecturas Distribuidas
10
Funcionamiento (VI)
z
Javascript y similares:
– Programación similar a Java.
–
–
–
–
while
do..while
for
etc
– Orientados a objetos
z
z
No se hace distinción entre “clase” y “objeto”.
Intérprete implementado por el navegador. El
rendimiento depende de la calidad de la
implementación
Curso 2008/2009
Arquitecturas Distribuidas
11
AJAX (I)
z
Asynchronous Javascript and XML (AJAX)
– Grupo de técnicas para crear aplicaciones web más
interactivas.
– Se solicitan datos del servidor de manera asíncrona y en
segundo plano
z
z
z
No interfiere con el aspecto y el comportamiento de la página
actual
Para la comunicación se utiliza el objeto
XMLHttpRequest de Javascript.
Para el intercambio de datos se utiliza XML.
Curso 2008/2009
Arquitecturas Distribuidas
12
AJAX (II)
Curso 2008/2009
Arquitecturas Distribuidas
13
AJAX (II)
z
Ventajas
– Mejoran la experiencia del usuario: las aplicaciones son más
interactivas y responden antes (aparentemente).
– Se reduce el consumo de ancho de banda. No es necesario volver a
cargar toda la página.
– No interfiere con el aspecto y el comportamiento de la página
actual
z
Desventajas
– No funciona si el Javascript está deshabilitado o no se implementa.
Contenido alternativo.
– Las páginas creadas dinámicamente no se registran en el
navegador. Botón “atrás” no funciona correctamente.
– Los “robots” de internet no ejecutan normalmente Javascript. No
se indexa correctamente el contenido dinámico.
Curso 2008/2009
Arquitecturas Distribuidas
14
Referencias y bibliografía
z
Especificaciones:
–
–
Ecmascript es la norma, javascript (netscape) y
jscript (microsoft) son implementaciones
ECMAScript:
z
z
http://www.ecma-international.org/publications/files/ecmast/ECMA-262.pdf
Tutoriales:
–
Javascript: http://www.w3schools.com/js/default.asp
–
Jscript: http://msdn.microsoft.com
Curso 2008/2009
Arquitecturas Distribuidas
15
Referencias y bibliografía
z
Tutoriales en español:
–
–
z
http://www.unav.es/cti/manuales/TutorialJavaScri
pt/indices/ Æ Universidad de navarra
http://www.webestilo.com/javascript/
Utilidades de programación
–
Barra integrada en firefox con manual de
programación: chrome://global/content/console.xul
Curso 2008/2009
Arquitecturas Distribuidas
16
Descargar