ficheros Semántica Audio/Video 3D/Gráficos Presentación Rendimiento Almacenamiento Permite que las aplicaciones web guarden datos en el dispositivo -Web Storage: sessionStorage/localStorage - Web SQL Database - IndexedDB
ficheros Semántica Audio/Video 3D/Gráficos Presentación Rendimiento Almacenamiento Mejora el rendimiento del acceso en tiempo real entre aplicaciones / dispositivos / servidor - Cross Document Messaging -XMLHTTPRequest 2 - Web Sockets - Server-Sent Events
Acceso a ficheros Semántica Audio/Video 3D/Gráficos Presentación Rendimiento Almacenamiento Permite que las aplicaciones webs puedan acceder (a)sincronamente a ficheros del dispositivo - File API - FileReader API - Filesystem & FileWritter API - BlobBuilder API - Blob URLs File API FilerReader API Filesystem & FileWritter API BlobBuilder API Blob URLs
ficheros Semántica Audio/Video 3D/Gráficos Presentación Rendimiento Almacenamiento Permite el uso de nuevas etiquetas / atributos que determinan la naturaleza del contenido. - Elementos multimedia - Elementos estructurales - Atributos semánticos - Nuevos tipos / atributos de campos de formulario - Sintaxis de Microformatos / microdata --Etc
Acceso a ficheros Semántica Audio/Video 3D/Gráficos Presentación Rendimiento Almacenamiento Permite no solo incluir contenido multimedia (audio / video) sino acceder, controlar y mani- pular determinados aspectos de los mismos Video Audio
ficheros Semántica Audio/Video 3D/Gráficos Presentación Rendimiento Almacenamiento Permite crear aplicaciones que rivalizan en rendimiento a las aplicaciones nativas, más responsivas que las aplicaciones tradicionales - Webworkers (procesos en background) - Almacenamiento local - Carga asíncrona - App caché - Webfonts
2020 2022 Apple, Mozilla & Opera no consiguieron crear un estándar HTML4. En consecuencia forman la Web WHATWG Se publica el borrador Web Applications 1.0 W3C “adopta” a WHATGW y publica el borrador HTML5 Finalización del borrador Gracias a Google, Apple y los dispositivos móviles HTML5 surge con fuerza Primer Release Candidate de HTML5 [previsión W3C] Finalización de test [previsión W3C] Creación del estándar HTML5 [previsión W3C] HISTORIA DE HTML 5
<header> <hgroup> <header> representa la cabecera de un documento o sección <hgroup> representa el título de una sección. Se usa para agrupar conjuntos de elementos h1-h6 (títulos y subtítulos) <header> <hgroup> <h1>Mi Blog</h1> <h2>Esforzándome para trabajar menos</h2> </hgroup> </header> NUEVAS ETIQUETAS DE PRESENTACIÓN
<aside> <header> <hgroup> <article> representa una pieza de contenido independiente dentro de un documento <nav> <article> <section> <section> representa una sección del documento (un capítulo, un apartado, etc) agrupa una serie de contenidos con una temática común
ilustración, una fotografía, etc <figure> <img src=“javier.jpg" alt=“Javier González"> <figcaption> Javier González impartiendo seminarios sobre tecnologías web</figcaption> </figure> <footer> <aside> <header> <hgroup> <nav> <article> <section> <figcaption> representa la “nota al pie” del elemento incluido en <figure> NUEVAS ETIQUETAS DE PRESENTACIÓN
<aside> <header> <hgroup> <nav> <article> <section> <aside> representa contenidos que no están directamente relacionados con el resto de contenido de la página o que aporta información adicional <article> <header><h1>Tecnologías web</h1></header> <p>bla bla bla</p> <aside> <ul> <li><a href=“#”>Links sobre HTML5</a></li> <li><a href=“#”>Links sobre CSS3</a></li> </ul> </aside> </article>
gráficos, dibujos y/o elementos visuales “al vuelo” con Javascript No requiere plugins, ni codecs Mapa de bits (no hay reescalado) El contenido no se añade al DOM Puede ser exportado • <canvas id="miLienzo" width="360" height="240"> <p>Tu navegador no soporta canvas</p> </canvas> <script> var lienzo = document.getElementById(‘miLienzo’) var context = lienzo.getContext('2d'); </script http://www.whatwg.org/specs/web-apps/current-work/#2dcontext http://code.google.com/p/explorercanvas/ http://billmill.org/static/canvastutorial/index.html CANVAS
elementos del DOM que compartan la clase especificada document.querySelectorAll(selector): acceso a todos los elementos del DOM con el selector especificado document.querySelector(selector): acceso al primer elemento del DOM con el selector especificado <script> var elementos1 = document.querySelectorAll("section div.wrapper"); var elementos2 = document.querySelectorAll("div.content, div.wrapper"); var inputsText = document.querySelectorAll('[type=text]'); </script> <script> var elemento = document.querySelector("section div.wrapper"); </script> JAVASCRIPT
tener Instalado el plugin. Problemas con Firewalls Se fuerza a usar un Navegador determinado Poca información (4 Kb) Reduce velocidad Técnicas de Almacenamiento Offline Previas Navegador Basado en Plugins Cookies
Diferentes APIs: Web Storage (Local Storage or DOM Storage) Web SQL Database IndexedDB File Storage PRINCIPIOS: Normas estándar para “todos” los navegadores. Información solo accesible desde el propio navegador. Interacción de la API y la Base de Datos es asíncrona ALMACENAMIENTO LOCAL
localStorage Permanecen hasta que el usuario los borra sessionStorage Desaparecen al cerrarse el navegador El más compatible. Estructura clave-valor Integridad de los datos. Race conditions http://html5demos.com/storage http://playground.html5rocks.com/#localstorage http://playground.html5rocks.com/#sessionstorage ALMACENAMIENTO LOCAL
Como las DDBB tradicionales. Estructura relacionada (joins) Más complejas. IE y Firefox no son compatibles http://playground.html5rocks.com/#async_transactions
Web Storage y Web SQL Database Estructura relacionada (joins) Transacciones de información. Pocos navegadores lo soportan, pero está previsto ser soportado por todos
información binaria (como texto), y grandes cantidades de información. File Reader soportado solo por Chrome FileWriter todavía no soportado por nadie Cuando sea soportado será bueno para almacenar grandes cantidades de información
defecto usar WEB STORAGE (+ simple & + compatible ) Ayudarse de librerías como persis.js ó Protegerse contra la perdida de datos No guardar información privada Los usuarios pueden borrar los datos fácilmente Sincronizarse con el servidor frecuentemente Securizar los datos Alto riesgo en navegadores compartidos SessionStorage mejor que LocalStorage Encriptar información Evitar guardar cierto tipo de datos ALMACENAMIENTO LOCAL
con cualquier servidor mediante un determinado protocolo de red. La conexión con el servidor se establece de forma asíncrona, en segundo plano, y la gestión del todo su ciclo de vida se realiza a través de callbacks que reciben eventos Debemos utilizar "ws://" para establecer conexiones con el protocolo websocket. El constructor admite además un parámetro adicional para que indicar un conjunto de subprotocolos, pero aún está sin definir. <script> var ws = new WebSocket("ws://echo.websocket.org"); </script> la URL del código de ejemplo es válida muy útil para pruebas, es un sencillo servidor websocket que actúa como eco (reenvía al cliente lo mismo que recibe).
pueden lanzarse en segundo plano, a modo de threads. Su objetivo es permitir que las aplicaciones web puedan lanzar hilos de ejecución concurrentes con una gran carga de trabajo y duración indeterminada. Las tareas funcionan al margen del proceso normal de gestión de eventos de los controles de la interface de usuario, evitando bloquear la página durante su ejecución. <script> var worker = new Worker("worker.js"); </script> <button type="button" onclick="worker.terminate();"> Kill</button>
callbacks, e incluso es posible crear otros workers. Limitación: no tienen un contexto de navegación asociado. No pueden acceder al DOM, window, document o parent, Pero sí a navigator, location, XMLHttpRequest, timers, applicationCache o Web SQL database. Permiten la posibilidad de ejecutar el código de otros scripts <script> importScripts("script1.js"); //De uno en uno... importScripts("script2.js"); importScripts("script3.js", "script4.js"); //.. o varios a la vez </script>
hilo padre principal con el worker hijo. La comunicación se realiza a través de "postMessage", y el manejador "onmessage". Una comunicación básica entre padre e hijo tendría cuatro pasos: <script> worker.postMessage("Información para el worker"); </script> <script> self.onmessage = function(event){ //Recibe "Información para el worker" en event.data }; </script> <script> self.postMessage("Información para el padre"); </script> <script> worker.onmessage = function(event){ //Recibe "Info para el padre" en event.data }; </script> 1) El hilo padre manda un mensaje (evento) al worker: 2) El worker recibe el mensaje en el atributo "data" del evento 3) El worker termina su proceso y envía un mensaje (evento) al padre: 4) El padre recibe el mensaje en el atributo "data" del evento
CSS 1: permite dar estilos independientemente del navegador y del HTML CSS2: nuevas funcionalidades, pero implementación lenta Semilla del CSS3. Se plantea una lista de mejoras de CSS2 Borrador de CSS3 CSS2.1: Crea lo que ahora consideramos el estándar Implementación en algunos navegadores de algunas partes de CSS3 2005 Empieza el desarrollo de CSS3 HISTORIA DE CSS 3
estilos Sombra Opacidad esquinas redondeadas … Mejora en tipografías Transformaciones Reduce la cantidad de HTML (divitis) Reduce las peticiones de imágenes ¡Nuestra pagina va a ser más rápida! CSS 3 VS CSS 2
url(../centerImage.jpg) top right repeat-y, url(../bottomImage.jpg) bottom center no-repeat; top image center image bottom image MULTIPLE BACKGROUNDS http://www.css3.info/wp-content/uploads/2007/09/multiple-backgrounds-example.html NOVEDADES DE CSS 3
Text-shadow: Xpos Ypos Blur Color; ejemplo de sombra Text-overflow Text-overflow: ellipsis-word; Lorem ipsum dolor sit… Word-wrap word-wrap: break-word; This paragraph has long words thisisaveryverylongwordthatisntreall yoneword and again a longwordwithnospacesinit TEXTOS http://lab.simurai.com/flashlight
a[href*=“.es”] a[href$=“.pdf”] [att$=val] termina por val [att^=val] empieza por val [att*=val] contiene val <a href=“http://web.com/home.html”> <a href=“http://web.com/img.jpg”> <a href=“http://web.com/img.gif”> <a href=“http://site.com/file.pdf”> <a href=“http://site.es/home/index.pdf”> <a href=“http://site.es/about.html”> <a href=“http://site.com/home.html”> SELECTORES DE ATRIBUTOS
Aumentamos y ensuciamos el código No todos los navegadores lo soportan Posibles soluciones eccstender.org less.js Ficheros .css para cada navegador css3generator.com -o-border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; ESTADO ACTUAL DE CSS 3