SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
© Juan Quemada, DIT, UPM
Ejemplo de un Cronómetro
1
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Cronómetro
WebApp similar a un cronómetro digital
Cuenta décimas de segundo (100 miliseg.)
n El contador se inicializa con 0,0 segundos
w n.toFixed(1) formatea con 1 decimal
Tiene 2 botones
n arrancar/parar: arranca o para la cuenta
w a partir del valor en que quedo
n arranca si cronómetro parado
n para si cronómetro contando
n inicializar: pone el contador a 0,0
La libreria zepto.js utilizada en los temas siguientes equivale a jQuery 2.0
n Los ejemplos pueden sustituir zepto por jQuery y funcionarán igual
w http://zeptojs.com/
2
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Cronómetro
3
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
DOM como almacén de datos
El navegador guarda en document la página HTML que está mostrando
n document es un objeto JavaScript con propiedades
w que contienen todos los elementos de la página
Las propiedades DOM son variables: src, value, innerHTML, ....
n donde la información se puede guardar y recuperar
w DOM solo contiene strings y todo debe convertirse a/de string
Los elementos de DOM se pueden utilizar como variables
n Hemos utilizado el elemento <span id="crono">
w para almacenar el contador de decimas de segundo
4
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Memoria local en HTML5
5
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
HTML5 implementa nuevos tipos de almacenamiento de variables
n Sencillas y eficientes de utilizar desde Javascript
w Definición: http://dev.w3.org/html5/webstorage/
Variables locales
n los datos se guardan permanentemente, hasta que se borran
Variables de sesión
n Los datos solo se guardan solo durante la sesión
w Comienzo de sesión: apertura de navegador o pestaña
w Final de sesión: cierre de navegador o pestaña
Almacenamiento de datos en cliente
6
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Son propiedades de los objetos localStorage y sessionStorage
n solo pueden contener strings, como por ejemplo
w localStorage.usuario = “Pedro Pérez”;
w sessionStorage.apellido = “Pérez”;
Las variables locales están asociadas a protocolo, dominio y puerto
n un programa solo puede acceder a propiedades de local/sessionStorage
w creadas por otros programas cargados del mismo servidor
Same origin policy
n Seguridad: un programa solo confia en programas del mismo servidor
n Modularidad: cada servidor tiene un espacio de nombres diferente
Variables locales y de sesión
7
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Cada usuario que acceda a esta página tendrá una cuenta diferente
n La variable está en su navegador
Ejemplo de localStorage
8
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Cronómetro con memoria
Nueva versión del cronómetro con localStorage
n así mantiene la cuenta de décimas de segundos
w entre usos sucesivos de la aplicación
El cronómetro utiliza ahora la variable
n localStorage.c
w para guardar la cuenta de segundos
Debemos inicializar localStorage.c
n con parámetro por defecto para cuando se ejecute por primera vez
Como la información se guarda ahora en localStorage y no en DOM
n hay que actualizar primero localStorage y luego mostrar en DOM
9
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Cronómetro:
localStorage
10
Juan Quemada, DIT, UPM
JavaScript y HTML5:
iframes y origin policy
11
© Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
iFrame
n Importa un recurso Web
w en un marco de navegación independiente
Un iFrame crea una caja de arena segura
n donde poder importar objetos externos
Ejemplo: enlaza un juego en otro servidor
n El iFrame evita que se introduzcan virus
w Acceso JavaScript limitado a caja de arena
iFrame
12
Juan Quemada, DIT, UPM
La seguridad se controla en las aplicaciones JavaScript
n Permitiendo que un programa JavaScript en un iframe solo acceda
w Al árbol DOM de la página principal si proviene del mismo origen
n Esto evita en el ejemplo anterior que el juego
w robe o modifique información o datos del usuario en la página externa
Origen
n protocolo, servidor y puerto del URL
La restricción de pertenecer al “mismo origen”
n Solo afecta al recurso principal: página Web, recurso, …
w Los scripts o los estilos no están afectados y pueden venir de otro servidor
Así es posible hacer “mash-ups” seguros
n de contenidos que no estén en nuestra cadena de confianza
© Juan Quemada, DIT, UPM
Seguridad Web: “Same Origin Policy”
13
Juan Quemada, DIT, UPM
Ejemplo con
iFrames
14
© Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM
Flexbox
15
© Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM© Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM
Flexbox permite un diseño
responsivo fácil y flexible:
display: flex;
flex-wrap: wrap;
coloca cada iframe a la derecha
del anterior. Al llegar al limite
pasa a la línea siguiente.
Código
16
© Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
JSON: JavaScript Object Notation
17
Juan Quemada, DIT, UPM
JSON: formato textual de representación de tipos y objetos JavaScript
n http://json.org/json-es.html
Un objeto JavaScript se transforma a un string JSON con
n JSON.stringify(object)
Un string JSON se transforma en el objeto original con
n JSON.parse(string_JSON)
© Juan Quemada, DIT, UPM
JSON
var x = {a:1, b:{y:[false, null, ""]}}, y, z;
y = JSON.stringify(x); => '{"a":1, "b":{"y":[false, null, ""]}}'
z = JSON.parse(y); => {a:1, b:{y:[false, null, ""]}}
18
Juan Quemada, DIT, UPM
© Juan Quemada, DIT, UPM
Serialización:
n transformación reversible de un tipo u objeto (en
memoria) en un string equivalente
La serialización es un formato de intercambio de datos
n Almacenar datos en un fichero
n Enviar datos a través de una línea de comunicación
n Paso de parámetros en interfaces REST
En JavaScript se realiza desde ECMAScript 5 con
n JSON.stringify(...) y JSON.parse(...)
Otros formatos de serialización: XML, HTML, XDR(C), ...
n Estos formatos están siendo desplazados por JSON, incluso XML
w Hay bibliotecas de JSON para los lenguajes más importantes
Serialización de datos
19
Juan Quemada, DIT, UPM
JSON puede serializar
n objetos, arrays, strings, números finitos, true, false y null
w NaN, Infinity y -Infinity se serializan a null
w Objetos Date se serializan a formato ISO
n la reconstrucción devuelve un string y no el objeto original
n No se puede serializar
w Funciones, RegExp, errores, undefined
Admite filtros para los elementos no soportados
n ver doc de APIs JavaScript
© Juan Quemada, DIT, UPM
Características de JSON
JSON.stringify(new Date()) => '"2013-08-08T17:13:10.751Z"'
JSON.stringify(NaN) => 'null'
JSON.stringify(Infinity) => 'null'
20
Juan Quemada, DIT, UPM
JSON en ejemplo con
iframes, array y for
21
© Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM
Si queremos
almacenar en el
navegador el
array de urls
para que no se
pierdan los urls
introducidos, hay
que guardarlo
serializado con
JSON en
localStorage
© Juan Quemada, DIT, UPM
Final del tema
Muchas gracias!
22
Juan Quemada, DIT, UPM

Más contenido relacionado

La actualidad más candente

Pointers in c v5 12102017 1
Pointers in c v5 12102017 1Pointers in c v5 12102017 1
Pointers in c v5 12102017 1tanmaymodi4
 
Strings Functions in C Programming
Strings Functions in C ProgrammingStrings Functions in C Programming
Strings Functions in C ProgrammingDevoAjit Gupta
 
Strings in c
Strings in cStrings in c
Strings in cvampugani
 
Implementation Of String Functions In C
Implementation Of String Functions In CImplementation Of String Functions In C
Implementation Of String Functions In CFazila Sadia
 
Loops in c programming
Loops in c programmingLoops in c programming
Loops in c programmingCHANDAN KUMAR
 
Chapter3
Chapter3Chapter3
Chapter3Kamran
 
Types of Statements in Python Programming Language
Types of Statements in Python Programming LanguageTypes of Statements in Python Programming Language
Types of Statements in Python Programming LanguageExplore Skilled
 
11 constructors in derived classes
11 constructors in derived classes11 constructors in derived classes
11 constructors in derived classesDocent Education
 
Normalización
NormalizaciónNormalización
Normalizacióncaoxman
 
Interprocess Communication
Interprocess CommunicationInterprocess Communication
Interprocess CommunicationDeepak H L
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAMaulik Borsaniya
 
Enunciados e r
Enunciados e rEnunciados e r
Enunciados e rRut Romero
 

La actualidad más candente (20)

Pointers in c v5 12102017 1
Pointers in c v5 12102017 1Pointers in c v5 12102017 1
Pointers in c v5 12102017 1
 
Strings Functions in C Programming
Strings Functions in C ProgrammingStrings Functions in C Programming
Strings Functions in C Programming
 
Type casting
Type castingType casting
Type casting
 
C string
C stringC string
C string
 
Strings in c
Strings in cStrings in c
Strings in c
 
Implementation Of String Functions In C
Implementation Of String Functions In CImplementation Of String Functions In C
Implementation Of String Functions In C
 
C++
C++C++
C++
 
Loops in c programming
Loops in c programmingLoops in c programming
Loops in c programming
 
Arrays and Strings
Arrays and Strings Arrays and Strings
Arrays and Strings
 
Operators php
Operators phpOperators php
Operators php
 
Unit 8. Pointers
Unit 8. PointersUnit 8. Pointers
Unit 8. Pointers
 
Chapter3
Chapter3Chapter3
Chapter3
 
Types of Statements in Python Programming Language
Types of Statements in Python Programming LanguageTypes of Statements in Python Programming Language
Types of Statements in Python Programming Language
 
11 constructors in derived classes
11 constructors in derived classes11 constructors in derived classes
11 constructors in derived classes
 
C operator and expression
C operator and expressionC operator and expression
C operator and expression
 
Normalización
NormalizaciónNormalización
Normalización
 
Interprocess Communication
Interprocess CommunicationInterprocess Communication
Interprocess Communication
 
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYAPYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
PYTHON-Chapter 3-Classes and Object-oriented Programming: MAULIK BORSANIYA
 
Enunciados e r
Enunciados e rEnunciados e r
Enunciados e r
 
Structure & union
Structure & unionStructure & union
Structure & union
 

Destacado

Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...David Zapateria Besteiro
 
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...David Zapateria Besteiro
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...David Zapateria Besteiro
 
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVGJavascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVGDavid Zapateria Besteiro
 
Best grade progress report
Best grade progress reportBest grade progress report
Best grade progress reportBryan Yeoh
 
Introducción al Diseño web
Introducción al Diseño webIntroducción al Diseño web
Introducción al Diseño webciwmx
 
부천 임플란트 잘하는곳 연세퍼스트치과
부천 임플란트 잘하는곳 연세퍼스트치과부천 임플란트 잘하는곳 연세퍼스트치과
부천 임플란트 잘하는곳 연세퍼스트치과Yu Jin
 
정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...
정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...
정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...成 金
 
Empresa de producción de gas metano
Empresa de producción de gas metanoEmpresa de producción de gas metano
Empresa de producción de gas metanolaura melo
 
V par craneal ( TRIGEMINO )
V par craneal ( TRIGEMINO )V par craneal ( TRIGEMINO )
V par craneal ( TRIGEMINO )aibofox
 
Science - Engineering - Design - Artのサイクル
Science - Engineering - Design - ArtのサイクルScience - Engineering - Design - Artのサイクル
Science - Engineering - Design - ArtのサイクルYasuhiro Takagi
 
Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...
Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...
Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...GUADALUPE LUEVANO MORENO
 
Sistema monetario internacional
Sistema monetario internacionalSistema monetario internacional
Sistema monetario internacionalYoselinn Lilian
 

Destacado (18)

Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
Javascript Módulo 7 - PROFUNDIZACIÓN EN ARRAYS, OBJETOS, PROPIEDADES, MÉTODOS...
 
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
 
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
Javascript Módulo 5 - Bucles, Arrays. Funciones como objectos. Ámbitos. Cierr...
 
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVGJavascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
Javascript - Módulo 9: Geolocalización en HTML5, Google maps, y SVG
 
Best grade progress report
Best grade progress reportBest grade progress report
Best grade progress report
 
Introducción al Diseño web
Introducción al Diseño webIntroducción al Diseño web
Introducción al Diseño web
 
부천 임플란트 잘하는곳 연세퍼스트치과
부천 임플란트 잘하는곳 연세퍼스트치과부천 임플란트 잘하는곳 연세퍼스트치과
부천 임플란트 잘하는곳 연세퍼스트치과
 
정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...
정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...
정품수면제구입 ̄http://7cc.kr"「톡:c2017」정품수면제 구입처г수면제 구입방법ㄅ수면제 판매,수면제 구입,수면제 파는곳,수면제 약...
 
Empresa de producción de gas metano
Empresa de producción de gas metanoEmpresa de producción de gas metano
Empresa de producción de gas metano
 
Chrismas project
Chrismas projectChrismas project
Chrismas project
 
V par craneal ( TRIGEMINO )
V par craneal ( TRIGEMINO )V par craneal ( TRIGEMINO )
V par craneal ( TRIGEMINO )
 
La primera etapa de la investigación
La primera etapa de la investigaciónLa primera etapa de la investigación
La primera etapa de la investigación
 
Science - Engineering - Design - Artのサイクル
Science - Engineering - Design - ArtのサイクルScience - Engineering - Design - Artのサイクル
Science - Engineering - Design - Artのサイクル
 
Contabilidad
ContabilidadContabilidad
Contabilidad
 
20170309
2017030920170309
20170309
 
Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...
Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...
Multimodalidad o transmision simultanea de contenidos verbales, visuales y so...
 
Sistema monetario internacional
Sistema monetario internacionalSistema monetario internacional
Sistema monetario internacional
 
Trabajo mayoli
Trabajo mayoliTrabajo mayoli
Trabajo mayoli
 

Similar a Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON

Similar a Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON (20)

Introducción js
Introducción jsIntroducción js
Introducción js
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
 
Tema4 apartado4.2
Tema4 apartado4.2Tema4 apartado4.2
Tema4 apartado4.2
 
Clase2
Clase2Clase2
Clase2
 
Mod00 transparencias
Mod00 transparenciasMod00 transparencias
Mod00 transparencias
 
Trabajo Final Dani
Trabajo  Final DaniTrabajo  Final Dani
Trabajo Final Dani
 
Php 6 y Mysql
Php 6 y MysqlPhp 6 y Mysql
Php 6 y Mysql
 
Guia practica java script
Guia practica java scriptGuia practica java script
Guia practica java script
 
Guia JavaScript INCES Militar - Kurt Gude
Guia JavaScript INCES Militar - Kurt GudeGuia JavaScript INCES Militar - Kurt Gude
Guia JavaScript INCES Militar - Kurt Gude
 
Fund Java
Fund JavaFund Java
Fund Java
 
Introducción JavaScript
Introducción JavaScriptIntroducción JavaScript
Introducción JavaScript
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
Ajax: introducción
Ajax: introducciónAjax: introducción
Ajax: introducción
 
Instalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntuInstalacion de Postrgre sql en ubuntu
Instalacion de Postrgre sql en ubuntu
 
SyntheticEvent – React.pdf
SyntheticEvent – React.pdfSyntheticEvent – React.pdf
SyntheticEvent – React.pdf
 
Guía JavaScript
Guía JavaScriptGuía JavaScript
Guía JavaScript
 
Seguridad
SeguridadSeguridad
Seguridad
 
INFOSAN Objetos del navegador
INFOSAN Objetos del navegador INFOSAN Objetos del navegador
INFOSAN Objetos del navegador
 
Hx c18
Hx c18Hx c18
Hx c18
 

Último

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (20)

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Javascript - Módulo 8: LocalStorage, iFrames, Origin policy y JSON

  • 1. © Juan Quemada, DIT, UPM Ejemplo de un Cronómetro 1 Juan Quemada, DIT, UPM
  • 2. © Juan Quemada, DIT, UPM Cronómetro WebApp similar a un cronómetro digital Cuenta décimas de segundo (100 miliseg.) n El contador se inicializa con 0,0 segundos w n.toFixed(1) formatea con 1 decimal Tiene 2 botones n arrancar/parar: arranca o para la cuenta w a partir del valor en que quedo n arranca si cronómetro parado n para si cronómetro contando n inicializar: pone el contador a 0,0 La libreria zepto.js utilizada en los temas siguientes equivale a jQuery 2.0 n Los ejemplos pueden sustituir zepto por jQuery y funcionarán igual w http://zeptojs.com/ 2 Juan Quemada, DIT, UPM
  • 3. © Juan Quemada, DIT, UPM Cronómetro 3 Juan Quemada, DIT, UPM
  • 4. © Juan Quemada, DIT, UPM DOM como almacén de datos El navegador guarda en document la página HTML que está mostrando n document es un objeto JavaScript con propiedades w que contienen todos los elementos de la página Las propiedades DOM son variables: src, value, innerHTML, .... n donde la información se puede guardar y recuperar w DOM solo contiene strings y todo debe convertirse a/de string Los elementos de DOM se pueden utilizar como variables n Hemos utilizado el elemento <span id="crono"> w para almacenar el contador de decimas de segundo 4 Juan Quemada, DIT, UPM
  • 5. © Juan Quemada, DIT, UPM Memoria local en HTML5 5 Juan Quemada, DIT, UPM
  • 6. © Juan Quemada, DIT, UPM HTML5 implementa nuevos tipos de almacenamiento de variables n Sencillas y eficientes de utilizar desde Javascript w Definición: http://dev.w3.org/html5/webstorage/ Variables locales n los datos se guardan permanentemente, hasta que se borran Variables de sesión n Los datos solo se guardan solo durante la sesión w Comienzo de sesión: apertura de navegador o pestaña w Final de sesión: cierre de navegador o pestaña Almacenamiento de datos en cliente 6 Juan Quemada, DIT, UPM
  • 7. © Juan Quemada, DIT, UPM Son propiedades de los objetos localStorage y sessionStorage n solo pueden contener strings, como por ejemplo w localStorage.usuario = “Pedro Pérez”; w sessionStorage.apellido = “Pérez”; Las variables locales están asociadas a protocolo, dominio y puerto n un programa solo puede acceder a propiedades de local/sessionStorage w creadas por otros programas cargados del mismo servidor Same origin policy n Seguridad: un programa solo confia en programas del mismo servidor n Modularidad: cada servidor tiene un espacio de nombres diferente Variables locales y de sesión 7 Juan Quemada, DIT, UPM
  • 8. © Juan Quemada, DIT, UPM Cada usuario que acceda a esta página tendrá una cuenta diferente n La variable está en su navegador Ejemplo de localStorage 8 Juan Quemada, DIT, UPM
  • 9. © Juan Quemada, DIT, UPM Cronómetro con memoria Nueva versión del cronómetro con localStorage n así mantiene la cuenta de décimas de segundos w entre usos sucesivos de la aplicación El cronómetro utiliza ahora la variable n localStorage.c w para guardar la cuenta de segundos Debemos inicializar localStorage.c n con parámetro por defecto para cuando se ejecute por primera vez Como la información se guarda ahora en localStorage y no en DOM n hay que actualizar primero localStorage y luego mostrar en DOM 9 Juan Quemada, DIT, UPM
  • 10. © Juan Quemada, DIT, UPM Cronómetro: localStorage 10 Juan Quemada, DIT, UPM
  • 11. JavaScript y HTML5: iframes y origin policy 11 © Juan Quemada, DIT, UPM
  • 12. © Juan Quemada, DIT, UPM iFrame n Importa un recurso Web w en un marco de navegación independiente Un iFrame crea una caja de arena segura n donde poder importar objetos externos Ejemplo: enlaza un juego en otro servidor n El iFrame evita que se introduzcan virus w Acceso JavaScript limitado a caja de arena iFrame 12 Juan Quemada, DIT, UPM
  • 13. La seguridad se controla en las aplicaciones JavaScript n Permitiendo que un programa JavaScript en un iframe solo acceda w Al árbol DOM de la página principal si proviene del mismo origen n Esto evita en el ejemplo anterior que el juego w robe o modifique información o datos del usuario en la página externa Origen n protocolo, servidor y puerto del URL La restricción de pertenecer al “mismo origen” n Solo afecta al recurso principal: página Web, recurso, … w Los scripts o los estilos no están afectados y pueden venir de otro servidor Así es posible hacer “mash-ups” seguros n de contenidos que no estén en nuestra cadena de confianza © Juan Quemada, DIT, UPM Seguridad Web: “Same Origin Policy” 13 Juan Quemada, DIT, UPM
  • 14. Ejemplo con iFrames 14 © Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM
  • 15. Flexbox 15 © Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM© Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM Flexbox permite un diseño responsivo fácil y flexible: display: flex; flex-wrap: wrap; coloca cada iframe a la derecha del anterior. Al llegar al limite pasa a la línea siguiente.
  • 16. Código 16 © Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM
  • 17. © Juan Quemada, DIT, UPM JSON: JavaScript Object Notation 17 Juan Quemada, DIT, UPM
  • 18. JSON: formato textual de representación de tipos y objetos JavaScript n http://json.org/json-es.html Un objeto JavaScript se transforma a un string JSON con n JSON.stringify(object) Un string JSON se transforma en el objeto original con n JSON.parse(string_JSON) © Juan Quemada, DIT, UPM JSON var x = {a:1, b:{y:[false, null, ""]}}, y, z; y = JSON.stringify(x); => '{"a":1, "b":{"y":[false, null, ""]}}' z = JSON.parse(y); => {a:1, b:{y:[false, null, ""]}} 18 Juan Quemada, DIT, UPM
  • 19. © Juan Quemada, DIT, UPM Serialización: n transformación reversible de un tipo u objeto (en memoria) en un string equivalente La serialización es un formato de intercambio de datos n Almacenar datos en un fichero n Enviar datos a través de una línea de comunicación n Paso de parámetros en interfaces REST En JavaScript se realiza desde ECMAScript 5 con n JSON.stringify(...) y JSON.parse(...) Otros formatos de serialización: XML, HTML, XDR(C), ... n Estos formatos están siendo desplazados por JSON, incluso XML w Hay bibliotecas de JSON para los lenguajes más importantes Serialización de datos 19 Juan Quemada, DIT, UPM
  • 20. JSON puede serializar n objetos, arrays, strings, números finitos, true, false y null w NaN, Infinity y -Infinity se serializan a null w Objetos Date se serializan a formato ISO n la reconstrucción devuelve un string y no el objeto original n No se puede serializar w Funciones, RegExp, errores, undefined Admite filtros para los elementos no soportados n ver doc de APIs JavaScript © Juan Quemada, DIT, UPM Características de JSON JSON.stringify(new Date()) => '"2013-08-08T17:13:10.751Z"' JSON.stringify(NaN) => 'null' JSON.stringify(Infinity) => 'null' 20 Juan Quemada, DIT, UPM
  • 21. JSON en ejemplo con iframes, array y for 21 © Juan Quemada, DIT, UPMJuan Quemada, DIT, UPM Si queremos almacenar en el navegador el array de urls para que no se pierdan los urls introducidos, hay que guardarlo serializado con JSON en localStorage
  • 22. © Juan Quemada, DIT, UPM Final del tema Muchas gracias! 22 Juan Quemada, DIT, UPM