SlideShare una empresa de Scribd logo
1 de 31
Facultad de Ciencias Informáticas
Desarrollo de Aplicaciones Web
Unidad 1: Programación web en el
cliente
PhD(c). Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
luis.aguas@utm.edu.ec
Objetivos de Desarrollo Sostenible
Meta
4.7 De aquí a 2030, asegurar que todos los alumnos adquieran
los conocimientos teóricos y prácticos necesarios para promover
el desarrollo sostenible, entre otras cosas mediante la educación
para el desarrollo sostenible y los estilos de vida sostenibles, los
derechos humanos, la igualdad de género, la promoción de una
cultura de paz y no violencia, la ciudadanía mundial y la
valoración de la diversidad cultural y la contribución de la cultura
al desarrollo sostenible
El dinero no es la clave del éxito; la libertad para
poder crear lo es - Nelson Mandela
Resultado de Aprendizaje
• Diseñar un producto de
software en el que se
apliquen principios de
diseño, para que sea
robusto, fácil de mantener
y modificar
• Tema: 1.2.4 Prototipos y
promesas
• 1.2.5 Librerías y Frameworks
JavaScript
Contenido
Arquitecturas de aplicaciones web
•La arquitectura básica de una aplicación web está formada por los
siguientes elementos:
Un navegador: Hace de cliente y realiza peticiones solicitando recursos a
los servidores web. Cuando hace una petición a un servidor y le contesta
enviándole un recurso, se lo muestra al usuario.
Un servidor web: Recibe peticiones de clientes (navegadores) y
responde a esas peticiones enviado un recurso o notificando un error si
el recurso no existe.
El protocolo http: Es el protocolo basado en TCP/IP que se utiliza para
que el navegador realice las peticiones al servidor web y este responda.
HTML: Es el formato básico de los documentos de la web. Es un formato
textual, basado en etiquetas que permite estructurar el contenido de la
página.
•La arquitectura de las aplicaciones web ha evolucionado
mucho en los últimos años
•No todas las aplicaciones web tienen la misma
arquitectura
•Las arquitecturas se diferencian principalmente en lo
estática o dinámica que sea la web
•Una web puede ser dinámica en el cliente y/o en el
servidor
•Las tecnologías utilizadas:
• Dinamismo en cliente: JavaScript
• Dinamismo en servidor: Java EE, .NET, PHP, Ruby on
Rails, Python Django, Groovy, Node.js, Scala Play…
•Cliente estático (Sin JavaScript)
• Servidor estático
• Servidor dinámico (3 capas)
•Cliente dinámico (Con JavaScript)
• Servidor estático
• Servidor dinámico
• JavaScript para efectos gráficos
• JavaScript con peticiones en segundo plano (AJAX)
• Single Page Application con REST
Arquitectura Cliente estático y Servidor estático
Cliente realiza petición desde el
navegador
Servidor web (apache) recibe la
petición y devuelve un documento
html. No hay petición de datos, el
servidor solo gestiona el archivo html
en el disco duro del servidor y lo
devuelve al navegador
HTTP
•Arquitectura Cliente estático y Servidor estático
El navegador hace petición al servidor mediante http
El servidor transforma URL a ruta en disco
El servidor devuelve el fichero de disco al navegador
El navegador visualiza (renderiza) la página HTML con
estilos CSS e imágenes (sin JavaScript).
Cuando el usuario hace clic en un enlace, el
navegador repite el proceso con la URL del link y
recarga por completo la página web
•Arquitectura Cliente estático y Servidor estático
Con esta arquitectura el servidor siempre devuelve
los mismos recursos
Desde el punto de vista del servidor, la web es
estática
La web está formada por HTML, CSS, Imágenes, PDF,
etc… (pero no incluye JavaScript)
A este tipo de web no se le suele llamar aplicación
web porque nada es dinámico. Se denomina
simplemente página web
•Arquitectura Cliente estático y Servidor estático
La web se diseñó con esta arquitectura
Las primeras páginas web eran así
Todavía se sigue usando en muchas páginas web:
Páginas personales o de proyectos básicas (p.e.
Tecnología de webs de github)
Documentación técnica (JavaDoc en Java, Maven
site, etc…)
• Arquitectura Cliente estático y Servidor dinámico
• Es un ejemplo de arquitectura de 3 capas:
• Navegador: Capa de presentación
• Servidor web: Capa de aplicación (Lógica de negocio)
• Base de datos: Capa de datos
Cliente realiza petición desde el
navegador
Servidor web (apache) recibe la
petición del navegador y envía la
petición al intérprete de php,
éste envía la petición al servidor
de bases de datos.
El Servidor web Recibe la
respuesta de php y devuelve una
página html al cliente.
HTTP
El servidor de
bases de datos
devuelve los
datos a PHP.
php
html
•Arquitectura Cliente estático y Servidor dinámico
Cuando el servidor web recibe una petición, dependiendo de la
URL:
Devolver contenido del disco
Ejecutar código para generar el recurso dinámicamente
Cuando se ejecuta código, normalmente se hacen consultas a
una base de datos para recuperar la información
Lo más habitual es que se genere la página HTML de forma
dinámica
También se pueden generar recursos de otro tipo (imágenes,
PDFs…)
Si el usuario pulsa un link, se recarga la página al completo
•Arquitectura Cliente estático y Servidor dinámico
Es la arquitectura de las primeras “aplicaciones web”
Todavía sigue habiendo muchas web con esta arquitectura
El contenido es dinámico, porque se ejecuta código en el servidor
para generar dicho contenido
La experiencia de usuario antes no era muy buena:
Conexiones lentas implican tiempos de carga apreciables en cada
clic
La recarga completa de la página ofrece una mala experiencia de
usuario (página en blanco)
Pero ha mejorado:
Mayor velocidad de Internet (menos tiempo de espera)
Navegadores muestran la nueva página una vez cargada (sin pasar
por la página en blanco)
Cliente realiza petición desde el
navegador
Las animaciones en javascript y css son
interpretadas en el navegador, el
servidor solo gestiona el archivo y lo
devuelve al cliente.
Servidor web (apache) recibe la
petición y devuelve un documento
html. No hay petición de datos, el
servidor solo gestiona el archivo html
en el disco duro del servidor y lo
devuelve al navegador
HTTP
Arquitectura Cliente dinámico y Servidor estático
•Arquitectura Cliente dinámico y Servidor estático
El contenido de la página web está alojado en el disco
duro del servidor (estático)
El cliente es dinámico porque las páginas incluyen código
JavaScript que se ejecuta en el navegador
Este JavaScript se usa para incluir efectos gráficos:
Efectos gráficos que no se pueden implementar con CSS
Mostrar u ocultar información en función de los
elementos que se seleccionan (para documentos largos)
Menús desplegables
Páginas adaptables para móviles (responsive)
• Arquitectura Cliente dinámico y Servidor dinámico
Cliente realiza petición desde el
navegador
Servidor web (apache) recibe la petición
del navegador y envía la petición al
intérprete de php, éste envía la petición
al servidor de bases de datos.
El Servidor web Recibe la respuesta de
php y devuelve los datos en html, json o
xml al cliente.
HTTP-REQUEST
El servidor de
bases de datos
devuelve los
datos a PHP.
php
JSON
Usando Javascript mediante la
tecnología ajax en el cliente no es
necesario recargar una página para
actualizar los datos en el navegador.
Ajax hace peticiones asincrónicas al
servidor mientras el usuario sigue
haciendo uso de la página. La
respuesta puede estar en formato
html, Json o XML, y debe ser traducida
a HTML mediante javascript.
AJAX
HTML, JSON, XML
•Arquitectura Cliente dinámico y Servidor dinámico
La mayoría de las aplicaciones web actuales son
dinámicas tanto en cliente como en servidor
Dependiendo de cómo se use el JavaScript en el
cliente, las aplicaciones se pueden dividir en tres tipos:
oJavaScript para efectos gráficos
oJavaScript con peticiones en segundo plano (AJAX)
oSingle Page Application con API REST
JavaScript para efectos gráficos
En este caso, el dinamismo en el cliente se utiliza exactamente igual
que con un servidor estático
JavaScript se diseñó, entre otras cosas, para añadir efectos gráficos
básicos a las páginas cuando el CSS era muy limitado
La gran mayoría de las aplicaciones web que existen en Internet
siguen esta arquitectura
JavaScript con peticiones en segundo plano (AJAX)
JavaScript se puede usar para no tener que recargar
completamente la página completa al pulsar un link
Con JavaScript se puede hacer petición al servidor web
en segundo plano (oculta al usuario)
Cuando llega al navegador el resultado de la petición, el
código JavaScript actualiza aquellas partes de la página
necesarias
A esta técnica se la conoce como AJAX (Asynchronous
JavaScript And XML)
•JavaScript con peticiones en segundo plano (AJAX)
Usar AJAX en una página mejora mucho la experiencia de
usuario
No es necesario recargar la página al completo, sólo
aquellas partes que cambian (p.e. se puede dejar el menú
fijo)
La página se puede cargar por partes, primero la
información importante y en segundo plano otros
elementos complementarios (p.e. los botones de compartir,
los comentarios en un blog…)
 Se puede dar realimentación al usuario de formas más
adecuadas (cuadro de diálogo, error de validación en un
formulario, quitar el icono de carga de un recurso, etc…)
•JavaScript con peticiones en segundo plano (AJAX)
Cuando el código JavaScript hace peticiones, el servidor
puede devolver:
Contenido para ser incluido en la página directamente:
Fragmentos de HTML generados dinámicamente
Recursos estáticos en disco: Imágenes, PDF, HTML, etc…
Información que será interpretada por JavaScript para
modificar la página (Mostrar un error, cambiar un color, …):
Información generada dinámicamente estructura en XML o
JSON (un formato similar a XML).
•JavaScript con peticiones en segundo plano (AJAX)
Un servidor web genera HTML de forma dinámica
cuando recibe peticiones http
Si se usa AJAX, el servidor genera información en
XML o JSON cuando recibe peticiones http
Habitualmente, cuando un servidor web genera XML
o JSON ante peticiones http, implementa una API
REST
•JavaScript con peticiones en segundo plano (AJAX)
Existen muchas aplicaciones web que no usan AJAX
La mayoría de las aplicaciones que se han
desarrollado en los últimos años usan AJAX en
algunas de sus páginas por la mejora en la
experiencia del usuario
Estándares web
•El W3C (World Wide Web Consortium) es una comunidad
internacional que desarrolla estándares abiertos que
aseguran el crecimiento de la Web a largo plazo
• Scripting and Ajax
• HTML & CSS
• Gráficos
• Audio & Video
• Accesibilidad
• XML
• Servicios Web
• Web Semántica
•HTML (Hypertext Markup Language) and CSS
(Cascading Style Sheets) son dos de las tecnologías
principales para la construcción de páginas web
HTML proporciona la información estructurada en
secciones, párrafos, título, imágenes, etc…
CSS proporciona la distribución de los elementos y su
estilo (colores, tipos de letra, fondos, efectos…)
Estándares web
•HTML
La versión actual es HTML5
Todavía no está finalizada, pero la mayoría de los
navegadores implementan gran parte de la especificación
Ha supuesto una revolución para el dinamismo en el cliente
porque ofrece muchas librerías/tecnologías avanzadas:
 Multimedia: etiquetas vídeo, audio y canvas, webgl
 Comunicaciones: websockets
 Concurrencia: webworkers
•CSS
CSS es un lenguaje usado para definir la
presentación de un documento
estructurado escrito en HTML, XML, SVG o
incluso interfaces de usuario de otras
tecnologías (JavaFX)
Su versión actual es CSS3 (aunque todavía
no está finalizada)
•Scripting
Las páginas web pueden programarse con diversos
lenguajes de script, aunque prácticamente sólo se usa
JavaScript
Con JavaScript se puede modificar la página y
ejecutar código cuando se interactúa con ella (a
través del modelo de objetos del documento DOM)
Se hacen peticiones al servidor web en segundo
plano y se actualiza el contenido de la web (AJAX)
•JavaScript
Es un lenguaje de programación basado en el estándar
ECMAScript de ECMA (otra organización diferente al W3C)
Hay ligeras diferencias en la implementación de JS de los
navegadores, aunque actualmente todos son bastante
compatibles entre sí (en el pasado no fue así)
Aunque algunos elementos de la sintaxis recuerden a Java,
no tiene nada que ver con Java.
El nombre JavaScript se eligió al publicar el lenguaje en una
época en la que Java estaba en auge y fue principalmente por
marketing
Gracias
Somos UTM

Más contenido relacionado

Similar a Desarrollo de aplicaciones web - Unidad 1

Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"Erick Cerna
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpvictdiazm
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamicoJose Luis Crespo
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGEfrain Criss
 
Paginas web diseño donamico.pptx
Paginas web diseño donamico.pptxPaginas web diseño donamico.pptx
Paginas web diseño donamico.pptxROBERTOAGUILLON3
 
Programación web
Programación webProgramación web
Programación weberic291285
 
Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !ouuyeah
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptxSibilinoAndante
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con JavaEudris Cabrera
 
Scripting cliente
Scripting clienteScripting cliente
Scripting clienteUAEH
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaverLuis Viteri
 

Similar a Desarrollo de aplicaciones web - Unidad 1 (20)

Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"Aplicaciones web enriquecidas "RIA"
Aplicaciones web enriquecidas "RIA"
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamico
 
Tecnologias de desarrollo web
Tecnologias de desarrollo webTecnologias de desarrollo web
Tecnologias de desarrollo web
 
0. Antecedentes Asp
0. Antecedentes Asp0. Antecedentes Asp
0. Antecedentes Asp
 
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIGArquitectura web  EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
Arquitectura web EXPOSICION KAREN ANDRADE, EFRAIN SARANSIG
 
Paginas web diseño donamico.pptx
Paginas web diseño donamico.pptxPaginas web diseño donamico.pptx
Paginas web diseño donamico.pptx
 
Plataformas cliente servidor
Plataformas cliente servidorPlataformas cliente servidor
Plataformas cliente servidor
 
Ajax
AjaxAjax
Ajax
 
Programación web
Programación webProgramación web
Programación web
 
Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !Programación Reactiva, Javascript Isomorfo y Meteorjs !
Programación Reactiva, Javascript Isomorfo y Meteorjs !
 
Aplicaciones web 1
Aplicaciones web 1Aplicaciones web 1
Aplicaciones web 1
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
Scripting cliente
Scripting clienteScripting cliente
Scripting cliente
 
Ajax
AjaxAjax
Ajax
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaver
 

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 

Último (20)

Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 

Desarrollo de aplicaciones web - Unidad 1

  • 1. Facultad de Ciencias Informáticas Desarrollo de Aplicaciones Web Unidad 1: Programación web en el cliente PhD(c). Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft luis.aguas@utm.edu.ec
  • 2. Objetivos de Desarrollo Sostenible Meta 4.7 De aquí a 2030, asegurar que todos los alumnos adquieran los conocimientos teóricos y prácticos necesarios para promover el desarrollo sostenible, entre otras cosas mediante la educación para el desarrollo sostenible y los estilos de vida sostenibles, los derechos humanos, la igualdad de género, la promoción de una cultura de paz y no violencia, la ciudadanía mundial y la valoración de la diversidad cultural y la contribución de la cultura al desarrollo sostenible
  • 3. El dinero no es la clave del éxito; la libertad para poder crear lo es - Nelson Mandela
  • 4. Resultado de Aprendizaje • Diseñar un producto de software en el que se apliquen principios de diseño, para que sea robusto, fácil de mantener y modificar • Tema: 1.2.4 Prototipos y promesas • 1.2.5 Librerías y Frameworks JavaScript Contenido
  • 5. Arquitecturas de aplicaciones web •La arquitectura básica de una aplicación web está formada por los siguientes elementos: Un navegador: Hace de cliente y realiza peticiones solicitando recursos a los servidores web. Cuando hace una petición a un servidor y le contesta enviándole un recurso, se lo muestra al usuario. Un servidor web: Recibe peticiones de clientes (navegadores) y responde a esas peticiones enviado un recurso o notificando un error si el recurso no existe. El protocolo http: Es el protocolo basado en TCP/IP que se utiliza para que el navegador realice las peticiones al servidor web y este responda. HTML: Es el formato básico de los documentos de la web. Es un formato textual, basado en etiquetas que permite estructurar el contenido de la página.
  • 6. •La arquitectura de las aplicaciones web ha evolucionado mucho en los últimos años •No todas las aplicaciones web tienen la misma arquitectura •Las arquitecturas se diferencian principalmente en lo estática o dinámica que sea la web •Una web puede ser dinámica en el cliente y/o en el servidor •Las tecnologías utilizadas: • Dinamismo en cliente: JavaScript • Dinamismo en servidor: Java EE, .NET, PHP, Ruby on Rails, Python Django, Groovy, Node.js, Scala Play…
  • 7. •Cliente estático (Sin JavaScript) • Servidor estático • Servidor dinámico (3 capas) •Cliente dinámico (Con JavaScript) • Servidor estático • Servidor dinámico • JavaScript para efectos gráficos • JavaScript con peticiones en segundo plano (AJAX) • Single Page Application con REST
  • 8. Arquitectura Cliente estático y Servidor estático Cliente realiza petición desde el navegador Servidor web (apache) recibe la petición y devuelve un documento html. No hay petición de datos, el servidor solo gestiona el archivo html en el disco duro del servidor y lo devuelve al navegador HTTP
  • 9. •Arquitectura Cliente estático y Servidor estático El navegador hace petición al servidor mediante http El servidor transforma URL a ruta en disco El servidor devuelve el fichero de disco al navegador El navegador visualiza (renderiza) la página HTML con estilos CSS e imágenes (sin JavaScript). Cuando el usuario hace clic en un enlace, el navegador repite el proceso con la URL del link y recarga por completo la página web
  • 10. •Arquitectura Cliente estático y Servidor estático Con esta arquitectura el servidor siempre devuelve los mismos recursos Desde el punto de vista del servidor, la web es estática La web está formada por HTML, CSS, Imágenes, PDF, etc… (pero no incluye JavaScript) A este tipo de web no se le suele llamar aplicación web porque nada es dinámico. Se denomina simplemente página web
  • 11. •Arquitectura Cliente estático y Servidor estático La web se diseñó con esta arquitectura Las primeras páginas web eran así Todavía se sigue usando en muchas páginas web: Páginas personales o de proyectos básicas (p.e. Tecnología de webs de github) Documentación técnica (JavaDoc en Java, Maven site, etc…)
  • 12. • Arquitectura Cliente estático y Servidor dinámico • Es un ejemplo de arquitectura de 3 capas: • Navegador: Capa de presentación • Servidor web: Capa de aplicación (Lógica de negocio) • Base de datos: Capa de datos Cliente realiza petición desde el navegador Servidor web (apache) recibe la petición del navegador y envía la petición al intérprete de php, éste envía la petición al servidor de bases de datos. El Servidor web Recibe la respuesta de php y devuelve una página html al cliente. HTTP El servidor de bases de datos devuelve los datos a PHP. php html
  • 13. •Arquitectura Cliente estático y Servidor dinámico Cuando el servidor web recibe una petición, dependiendo de la URL: Devolver contenido del disco Ejecutar código para generar el recurso dinámicamente Cuando se ejecuta código, normalmente se hacen consultas a una base de datos para recuperar la información Lo más habitual es que se genere la página HTML de forma dinámica También se pueden generar recursos de otro tipo (imágenes, PDFs…) Si el usuario pulsa un link, se recarga la página al completo
  • 14. •Arquitectura Cliente estático y Servidor dinámico Es la arquitectura de las primeras “aplicaciones web” Todavía sigue habiendo muchas web con esta arquitectura El contenido es dinámico, porque se ejecuta código en el servidor para generar dicho contenido La experiencia de usuario antes no era muy buena: Conexiones lentas implican tiempos de carga apreciables en cada clic La recarga completa de la página ofrece una mala experiencia de usuario (página en blanco) Pero ha mejorado: Mayor velocidad de Internet (menos tiempo de espera) Navegadores muestran la nueva página una vez cargada (sin pasar por la página en blanco)
  • 15. Cliente realiza petición desde el navegador Las animaciones en javascript y css son interpretadas en el navegador, el servidor solo gestiona el archivo y lo devuelve al cliente. Servidor web (apache) recibe la petición y devuelve un documento html. No hay petición de datos, el servidor solo gestiona el archivo html en el disco duro del servidor y lo devuelve al navegador HTTP Arquitectura Cliente dinámico y Servidor estático
  • 16. •Arquitectura Cliente dinámico y Servidor estático El contenido de la página web está alojado en el disco duro del servidor (estático) El cliente es dinámico porque las páginas incluyen código JavaScript que se ejecuta en el navegador Este JavaScript se usa para incluir efectos gráficos: Efectos gráficos que no se pueden implementar con CSS Mostrar u ocultar información en función de los elementos que se seleccionan (para documentos largos) Menús desplegables Páginas adaptables para móviles (responsive)
  • 17. • Arquitectura Cliente dinámico y Servidor dinámico Cliente realiza petición desde el navegador Servidor web (apache) recibe la petición del navegador y envía la petición al intérprete de php, éste envía la petición al servidor de bases de datos. El Servidor web Recibe la respuesta de php y devuelve los datos en html, json o xml al cliente. HTTP-REQUEST El servidor de bases de datos devuelve los datos a PHP. php JSON Usando Javascript mediante la tecnología ajax en el cliente no es necesario recargar una página para actualizar los datos en el navegador. Ajax hace peticiones asincrónicas al servidor mientras el usuario sigue haciendo uso de la página. La respuesta puede estar en formato html, Json o XML, y debe ser traducida a HTML mediante javascript. AJAX HTML, JSON, XML
  • 18. •Arquitectura Cliente dinámico y Servidor dinámico La mayoría de las aplicaciones web actuales son dinámicas tanto en cliente como en servidor Dependiendo de cómo se use el JavaScript en el cliente, las aplicaciones se pueden dividir en tres tipos: oJavaScript para efectos gráficos oJavaScript con peticiones en segundo plano (AJAX) oSingle Page Application con API REST
  • 19. JavaScript para efectos gráficos En este caso, el dinamismo en el cliente se utiliza exactamente igual que con un servidor estático JavaScript se diseñó, entre otras cosas, para añadir efectos gráficos básicos a las páginas cuando el CSS era muy limitado La gran mayoría de las aplicaciones web que existen en Internet siguen esta arquitectura
  • 20. JavaScript con peticiones en segundo plano (AJAX) JavaScript se puede usar para no tener que recargar completamente la página completa al pulsar un link Con JavaScript se puede hacer petición al servidor web en segundo plano (oculta al usuario) Cuando llega al navegador el resultado de la petición, el código JavaScript actualiza aquellas partes de la página necesarias A esta técnica se la conoce como AJAX (Asynchronous JavaScript And XML)
  • 21. •JavaScript con peticiones en segundo plano (AJAX) Usar AJAX en una página mejora mucho la experiencia de usuario No es necesario recargar la página al completo, sólo aquellas partes que cambian (p.e. se puede dejar el menú fijo) La página se puede cargar por partes, primero la información importante y en segundo plano otros elementos complementarios (p.e. los botones de compartir, los comentarios en un blog…)  Se puede dar realimentación al usuario de formas más adecuadas (cuadro de diálogo, error de validación en un formulario, quitar el icono de carga de un recurso, etc…)
  • 22. •JavaScript con peticiones en segundo plano (AJAX) Cuando el código JavaScript hace peticiones, el servidor puede devolver: Contenido para ser incluido en la página directamente: Fragmentos de HTML generados dinámicamente Recursos estáticos en disco: Imágenes, PDF, HTML, etc… Información que será interpretada por JavaScript para modificar la página (Mostrar un error, cambiar un color, …): Información generada dinámicamente estructura en XML o JSON (un formato similar a XML).
  • 23. •JavaScript con peticiones en segundo plano (AJAX) Un servidor web genera HTML de forma dinámica cuando recibe peticiones http Si se usa AJAX, el servidor genera información en XML o JSON cuando recibe peticiones http Habitualmente, cuando un servidor web genera XML o JSON ante peticiones http, implementa una API REST
  • 24. •JavaScript con peticiones en segundo plano (AJAX) Existen muchas aplicaciones web que no usan AJAX La mayoría de las aplicaciones que se han desarrollado en los últimos años usan AJAX en algunas de sus páginas por la mejora en la experiencia del usuario
  • 25. Estándares web •El W3C (World Wide Web Consortium) es una comunidad internacional que desarrolla estándares abiertos que aseguran el crecimiento de la Web a largo plazo • Scripting and Ajax • HTML & CSS • Gráficos • Audio & Video • Accesibilidad • XML • Servicios Web • Web Semántica
  • 26. •HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) son dos de las tecnologías principales para la construcción de páginas web HTML proporciona la información estructurada en secciones, párrafos, título, imágenes, etc… CSS proporciona la distribución de los elementos y su estilo (colores, tipos de letra, fondos, efectos…)
  • 27. Estándares web •HTML La versión actual es HTML5 Todavía no está finalizada, pero la mayoría de los navegadores implementan gran parte de la especificación Ha supuesto una revolución para el dinamismo en el cliente porque ofrece muchas librerías/tecnologías avanzadas:  Multimedia: etiquetas vídeo, audio y canvas, webgl  Comunicaciones: websockets  Concurrencia: webworkers
  • 28. •CSS CSS es un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML, XML, SVG o incluso interfaces de usuario de otras tecnologías (JavaFX) Su versión actual es CSS3 (aunque todavía no está finalizada)
  • 29. •Scripting Las páginas web pueden programarse con diversos lenguajes de script, aunque prácticamente sólo se usa JavaScript Con JavaScript se puede modificar la página y ejecutar código cuando se interactúa con ella (a través del modelo de objetos del documento DOM) Se hacen peticiones al servidor web en segundo plano y se actualiza el contenido de la web (AJAX)
  • 30. •JavaScript Es un lenguaje de programación basado en el estándar ECMAScript de ECMA (otra organización diferente al W3C) Hay ligeras diferencias en la implementación de JS de los navegadores, aunque actualmente todos son bastante compatibles entre sí (en el pasado no fue así) Aunque algunos elementos de la sintaxis recuerden a Java, no tiene nada que ver con Java. El nombre JavaScript se eligió al publicar el lenguaje en una época en la que Java estaba en auge y fue principalmente por marketing