III. Lenguajes de script en cliente 1. Motivación 2. Funcionamiento Motivación (I) z Hasta ahora: – Cada “evento” es procesado por el servidor. Servidor WWW Curso 2003/2004 Arquitecturas Distribuidas 2 Motivación (II) z Hasta ahora: – Cada “evento” sólo puede ser procesador por el servidor. Servidor WWW Curso 2003/2004 Arquitecturas Distribuidas 3 Motivación (III) z Hasta ahora: – Realmente, pocos “eventos” Æ Interacción muy limitada con el usuario. Ir a un enlace. z Rellenar datos a través de un formulario para conseguir una nueva página. z Etc. z Curso 2003/2004 Arquitecturas Distribuidas 4 Motivación (IV) z Solución: – Las páginas deben contener instrucciones que se ejecuten en el lado del cliente. Java Æ Lenguaje “pesado”, pero compatible entre equipos. z JavaScript y similares Æ Lenguaje “ligero”, pero con incompatibilidades entre equipos. z Curso 2003/2004 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 2003/2004 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 2003/2004 Arquitecturas Distribuidas 7 Funcionamiento (III) <html> <script language="JavaScript"> <!-function dihola() { alert("Hola a todos!"); } --> </script> <body onLoad="dihola();"> </body> </html> Curso 2003/2004 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 2003/2004 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 2003/2004 Arquitecturas Distribuidas 10 Funcionamiento (VI) z Javascript y similares: – Programación similar a Java. – – – – while do..while for etc – Orientados a objetos z No se hace distinción entre “clase” y “objeto”. Curso 2003/2004 Arquitecturas Distribuidas 11 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 2003/2004 Arquitecturas Distribuidas 12 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 2003/2004 Arquitecturas Distribuidas 13