SlideShare una empresa de Scribd logo
0
@roci_munoz
rocimunoz@gmail.com
WebComponents
https://github.com/rocimunoz
Sobre Rocio Muñoz ZYLK (BILBAO)
Empresa de Software Libre
Trabajo en entornos Java
(Spring, Maven, Ibatis, Oracle, Mysql, Sonar,
Jenkins, Vaadin …)
Web en mi tiempo libre
(Node, Grunt, Bower, Sass, Javascript, Css
… )
Colaboro en Cantabriatic
http://www.cantabriatic.com
INDRA (MADRID)
Departamento Financiero BBVA
CIC CONSUTING (SANTANDER)
Sector Eléctrico Viesgo Distribución
WebComponents
 Problemas actuales en la web
 Evolución de los webcomponents
 WebComponents: Qué son
 Shadow DOM
 Custom Elements
 Html Imports
 Templates
 Polymer: Ejemplo
1.
Problemas actuales en el mundo web
1.Problemas actuales
Antes el peso de una web estaba en el servidor
Ahora el cliente es cada vez más complejo
Surgen nuevos problemas
1)Encapsulamiento (iframes, !important)
2)Modularidad
3)Extensibilidad
4)Templates
1.Problemas: Encapsulamiento
Especificidad de selectores: Abusamos de iframes o !important
1.Problemas: Modularidad
CSS: Smacss, OOCCS, variables, mixins, preprocesadores
CSS
Javascript: Backbone, Angular, Ember, Grunt, Yeoman, Bower,
preprocesadores javascript
Html: No puedo reutilizar código Html escrito en otros ficheros
1.Problemas: Extensibilidad
Etiquetas básicas
<div><span><p>
<table><tr><td> …
<font><b><i><small><bold>...
<form><input><label><button> …
<video><img src=””>
¿Y si necesito elementos nuevos?
<grafico-3d>,<grid>, <paleta-colores>,
<album-fotos>, <tarjeta-contacto>
1.Problemas: Templates
●
Si existen templates en lenguajes de tipo servidor
●
Php, Python, Ruby on Rails …
●
En cliente aplicamos javascript para usar templates
●
Angular, Backbone, Ember ...
●
No podemos aplicar templates en el HTML
2.
WebComponents
2. WebComponents. Evolución
2. WebComponents. Qué son
●
Conjunto de estandares que nos permitirán crear
nuestros propios elementos Html
●
Formado por 4 estandares:
●
Shadow DOM → Encapsulamiento
●
HTML Imports → Modularidad
●
Templates → Templates
●
Custom Elements → Extensibilidad
2. WebComponents. Shadow DOM
●
Nueva especificación dentro de webComponents que resuelve
los problemas de “encapsulamiento” del CSS/JS
●
Es un árbol DOM encapsulado que convive con el DOM padre
de una web
●
shadow Host: nodo donde se inserta un shadowRoot
●
shadow Root: subarbol aislado de la web que cuelga de Host
document.getSelector(“div”).createShadowRoot();
2. WebComponents. Shadow DOM
2. WebComponents. API Shadow DOM
Crear un arbol ShadowDOM
document.querySelector('#selector').createShadowRoot();
Comunicación entre arbol DOM y Shadow DOM
<content select=''></content>
Gestion LIFO entre arboles DOM
<shadow></shadow>
Nuevas etiquetas css
:host, :host(), ::shadow, deep
2. Compatibilidad Shadow DOM
Chrome y Opera trabajan con Shadow DOM
Firefox: about:config (dom.webcomponents.enabled)
2. WebComponents. CustomElements
●
Nueva especificación que resuelve los problemas de extensibilidad
●
Permite al usuario definir nuevas etiquetas HTML
●
Nomenclatura: usar un guion
<my-tag></my-tag>
●
Registro de un Custom Element
var myTag = document.registerElement('my-tag');
document.body.appendChild(new myTag());
2. Compatibilidad. CustomElements
Chrome y Opera trabajan con Custom Elements
Firefox: about:config (dom.webcomponents.enabled)
2. WebComponents. Html Imports
●
Nueva especificación que nos resuelven los problemas de
modularidad
●
Permite incluir y reutilizar Html en otros documentos Html
Sincrono
<link rel="import" href="component1.html">
Asincrono
<link rel="import" href="component2.html" async>
2. WebComponents. Html Imports
imports a una misma URL
solo se cargan 1 vez
Vulcanize herramienta de
polymer para reducir las
peticiones de red
mezclando todos los
imports en un único
fichero
2. Compatibilidad. Html Imports
2. WebComponents. Templates
●
Nueva especificación dentro de webComponents
●
Nos permiten utilizar patrones y formas comunes de trabajar entre
los desarrolladores
●
Templates no son visibles en el DOM hasta que se invocan
<template id="mytemplate">
<img src="" alt="great image">
<div class="comment"></div>
</template>
2. WebComponents. Templates
var t = document.querySelector('#mytemplate');
t.content.querySelector('img').src = 'logo.png';
var clone = document.importNode(t.content, true);
document.body.appendChild(clone);
<template id="mytemplate">
<img src="" alt="great image">
<div class="comment"></div>
</template>
Activamos un
template
2. Compatibilidad. Templates
2. WebComponents. Polyfills
¿Está lista la web para usar webcomponents?
¿Funcionarán mis aplicaciones en todos los navegadores?
POLYFILL
Trozos de código que permiten añadir funcionalidades nuevas a
navegadores que no lo soportan.
webcomponents.js: Conjunto de polyfills
webcomponents-lite.js: Conjunto más ligero de polyfills sin
soporte para shadow DOM
2. WebComponents. Frameworks
Polymer
Framework para trabajar
con web components.
Es un proyecto de Google
X-Tag
Pequeña libreria de
javascript para trabajar
con WebComponents.
Creado y soportado por
Mozilla
Bosonic
Conjunto de herramientas
para construir
webcomponents.
3.
Polymer y
Polymer Starter Kit
3. Polymer
Librería/Framework javascript sobre el estándar de webcomponents
Polymer 1.0 se encuentra en producción desde Mayo 2015
3. Polymer
Componentes listos para usar en Polymer 1.0
●
paper-elements: elementos UI con estilo Material Design
●
iron-elements: elementos básicos para crear aps
●
google-web-components: servicios de google encapsulados
en forma de webcomponents
●
platinium-elements: notificaciones, cache ...
●
gold-elements: componentes para eccommerce
●
neon-elements: animaciones
3. Polymer: Repositorios
Custom Elements io
https://customelements.io/
Catalogo Polymer
https://elements.polymer-project.org/
3. Polymer Starter Kit
Google Developer
●
Polymer-starter-kit-light
●
Polymer-starter-kit
https://developers.google.com/web/tools/polymer-starter-kit/
Yeoman Polymer
npm install -g generator-polymer
yo polymer
GIT HUB Polymer
https://github.com/PolymerElements/polymer-starter-kit/
3. Polymer Starter Kit
Gracias!!
@roci_munoz
rocimunoz@gmail.com
https://github.com/rocimunoz

Más contenido relacionado

La actualidad más candente

I introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_coI introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_co
fanny casadiego
 
Desarrollo de Aplicaciones Web 2.0 con GWT
Desarrollo de Aplicaciones Web 2.0 con GWTDesarrollo de Aplicaciones Web 2.0 con GWT
Desarrollo de Aplicaciones Web 2.0 con GWT
Ingenieria Informatica Empresarial
 
Frameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones WebFrameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones WebEsteban Saavedra
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas web
Geraldyn De Sousa
 
Programacion de una tienda virtual en Grails
Programacion de una tienda virtual en GrailsProgramacion de una tienda virtual en Grails
Programacion de una tienda virtual en Grails
Gabriel Bermudez
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Responsive Web Design (Diseño Web Adaptable)
Responsive Web Design (Diseño Web Adaptable)Responsive Web Design (Diseño Web Adaptable)
Responsive Web Design (Diseño Web Adaptable)
Adolfo Sanz De Diego
 
Semana 2 HTML y CSS
Semana 2   HTML y CSSSemana 2   HTML y CSS
Semana 2 HTML y CSS
Richard Eliseo Mendoza Gafaro
 
Las Ventajas de usar HTML5 Y CSS3
Las Ventajas de usar HTML5 Y CSS3Las Ventajas de usar HTML5 Y CSS3
Las Ventajas de usar HTML5 Y CSS3
Gerson Perez Aguilar
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
Antonio Ognio
 
Semana 2 Generación del proyecto usando Spring
Semana 2   Generación del proyecto usando SpringSemana 2   Generación del proyecto usando Spring
Semana 2 Generación del proyecto usando Spring
Richard Eliseo Mendoza Gafaro
 

La actualidad más candente (12)

I introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_coI introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_co
 
Desarrollo de Aplicaciones Web 2.0 con GWT
Desarrollo de Aplicaciones Web 2.0 con GWTDesarrollo de Aplicaciones Web 2.0 con GWT
Desarrollo de Aplicaciones Web 2.0 con GWT
 
Frameworks Java
Frameworks JavaFrameworks Java
Frameworks Java
 
Frameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones WebFrameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones Web
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas web
 
Programacion de una tienda virtual en Grails
Programacion de una tienda virtual en GrailsProgramacion de una tienda virtual en Grails
Programacion de una tienda virtual en Grails
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Curso Ejb3
 
Responsive Web Design (Diseño Web Adaptable)
Responsive Web Design (Diseño Web Adaptable)Responsive Web Design (Diseño Web Adaptable)
Responsive Web Design (Diseño Web Adaptable)
 
Semana 2 HTML y CSS
Semana 2   HTML y CSSSemana 2   HTML y CSS
Semana 2 HTML y CSS
 
Las Ventajas de usar HTML5 Y CSS3
Las Ventajas de usar HTML5 Y CSS3Las Ventajas de usar HTML5 Y CSS3
Las Ventajas de usar HTML5 Y CSS3
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Semana 2 Generación del proyecto usando Spring
Semana 2   Generación del proyecto usando SpringSemana 2   Generación del proyecto usando Spring
Semana 2 Generación del proyecto usando Spring
 

Destacado

Herramientas publicación gis web poroceso y análisis
Herramientas publicación gis web   poroceso y análisisHerramientas publicación gis web   poroceso y análisis
Herramientas publicación gis web poroceso y análisis
Urban Data Analytics
 
Eppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaEppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre Girona
Jordi Graells
 
Symfony2 admingenerator
Symfony2 admingeneratorSymfony2 admingenerator
Symfony2 admingenerator
symfony_bcn
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
César Hernández
 
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Esri
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2hydras_cs
 
Paty carbajal presentacion
Paty carbajal presentacionPaty carbajal presentacion
Paty carbajal presentacion
patty_bperdomo21
 
Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Modeliza de variables_climaticas2
Modeliza de variables_climaticas2
Lucas83
 
Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)
Javier Eguiluz
 
Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012symfony_bcn
 
Monografia Metodologia Agil XP
Monografia Metodologia Agil XPMonografia Metodologia Agil XP
Monografia Metodologia Agil XP
Jorw Yengle
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
Walter Medina Tocas
 
Aplicaciones Machine Learning GIS
Aplicaciones Machine Learning GISAplicaciones Machine Learning GIS
Aplicaciones Machine Learning GIS
Urban Data Analytics
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScript
Javier Vélez Reyes
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
Soni BM
 
Introduccion Sig
Introduccion SigIntroduccion Sig
Introduccion Sig
C G
 
Programación Extrema
Programación ExtremaProgramación Extrema
Programación Extrema
urumisama
 
SIG en la Web: Fundamentos
SIG en la Web: FundamentosSIG en la Web: Fundamentos
SIG en la Web: Fundamentos
Leandro Zamudio
 
Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2
Ronny López
 

Destacado (20)

Herramientas publicación gis web poroceso y análisis
Herramientas publicación gis web   poroceso y análisisHerramientas publicación gis web   poroceso y análisis
Herramientas publicación gis web poroceso y análisis
 
Eppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaEppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre Girona
 
Symfony2 admingenerator
Symfony2 admingeneratorSymfony2 admingenerator
Symfony2 admingenerator
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
 
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2
 
Paty carbajal presentacion
Paty carbajal presentacionPaty carbajal presentacion
Paty carbajal presentacion
 
Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Modeliza de variables_climaticas2
Modeliza de variables_climaticas2
 
Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)
 
Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012
 
Monografia Metodologia Agil XP
Monografia Metodologia Agil XPMonografia Metodologia Agil XP
Monografia Metodologia Agil XP
 
Metodologia rad XP
Metodologia rad XPMetodologia rad XP
Metodologia rad XP
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Aplicaciones Machine Learning GIS
Aplicaciones Machine Learning GISAplicaciones Machine Learning GIS
Aplicaciones Machine Learning GIS
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScript
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Introduccion Sig
Introduccion SigIntroduccion Sig
Introduccion Sig
 
Programación Extrema
Programación ExtremaProgramación Extrema
Programación Extrema
 
SIG en la Web: Fundamentos
SIG en la Web: FundamentosSIG en la Web: Fundamentos
SIG en la Web: Fundamentos
 
Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2
 

Similar a Web components

Seminario 2+parte wickets
Seminario 2+parte wicketsSeminario 2+parte wickets
Seminario 2+parte wickets
Jorge Mahecha
 
Kit polymer en Medianet Software
Kit polymer en Medianet SoftwareKit polymer en Medianet Software
Kit polymer en Medianet Software
Luis Recio
 
Clase 8 Manipulación del DOM
Clase 8 Manipulación del DOMClase 8 Manipulación del DOM
Clase 8 Manipulación del DOM
José Ricardo Tillero Giménez
 
HTML5 en Acción
HTML5 en AcciónHTML5 en Acción
HTML5 en Acción
drarock
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
Microsoft Argentina y Uruguay [Official Space]
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
David Gil Sánchez
 
Introduccion a j query
Introduccion a j queryIntroduccion a j query
Introduccion a j query
Pablo Viteri
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
Roberto Sanz Ciriano
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaver
Luis Viteri
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
Alberto Diaz Martin
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
Alberto Diaz Martin
 
Web corporativa con Drupal
Web corporativa con DrupalWeb corporativa con Drupal
Web corporativa con Drupal
eduvega
 
Powerpointjim
PowerpointjimPowerpointjim
Powerpointjim
Jose Fabre
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
Luis Fernando Aguas Bucheli
 
Javascript y Jquery.pptx
Javascript y Jquery.pptxJavascript y Jquery.pptx
Javascript y Jquery.pptx
JuanLopez169185
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corporacion de Industrias Tecnologicas S.A.
 

Similar a Web components (20)

Seminario 2+parte wickets
Seminario 2+parte wicketsSeminario 2+parte wickets
Seminario 2+parte wickets
 
Kit polymer en Medianet Software
Kit polymer en Medianet SoftwareKit polymer en Medianet Software
Kit polymer en Medianet Software
 
Clase 8 Manipulación del DOM
Clase 8 Manipulación del DOMClase 8 Manipulación del DOM
Clase 8 Manipulación del DOM
 
HTML5 en Acción
HTML5 en AcciónHTML5 en Acción
HTML5 en Acción
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
 
Introduccion a j query
Introduccion a j queryIntroduccion a j query
Introduccion a j query
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Instalacion adobe dream weaver
Instalacion adobe dream weaverInstalacion adobe dream weaver
Instalacion adobe dream weaver
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
Web corporativa con Drupal
Web corporativa con DrupalWeb corporativa con Drupal
Web corporativa con Drupal
 
Html5todayv7
Html5todayv7Html5todayv7
Html5todayv7
 
La web 2.0
La web 2.0La web 2.0
La web 2.0
 
JqueryMobile
JqueryMobile JqueryMobile
JqueryMobile
 
Powerpointjim
PowerpointjimPowerpointjim
Powerpointjim
 
Tema 3
Tema 3Tema 3
Tema 3
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
Javascript y Jquery.pptx
Javascript y Jquery.pptxJavascript y Jquery.pptx
Javascript y Jquery.pptx
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 

Último

Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 

Último (20)

Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 

Web components

  • 2. Sobre Rocio Muñoz ZYLK (BILBAO) Empresa de Software Libre Trabajo en entornos Java (Spring, Maven, Ibatis, Oracle, Mysql, Sonar, Jenkins, Vaadin …) Web en mi tiempo libre (Node, Grunt, Bower, Sass, Javascript, Css … ) Colaboro en Cantabriatic http://www.cantabriatic.com INDRA (MADRID) Departamento Financiero BBVA CIC CONSUTING (SANTANDER) Sector Eléctrico Viesgo Distribución
  • 3. WebComponents  Problemas actuales en la web  Evolución de los webcomponents  WebComponents: Qué son  Shadow DOM  Custom Elements  Html Imports  Templates  Polymer: Ejemplo
  • 5. 1.Problemas actuales Antes el peso de una web estaba en el servidor Ahora el cliente es cada vez más complejo Surgen nuevos problemas 1)Encapsulamiento (iframes, !important) 2)Modularidad 3)Extensibilidad 4)Templates
  • 6. 1.Problemas: Encapsulamiento Especificidad de selectores: Abusamos de iframes o !important
  • 7. 1.Problemas: Modularidad CSS: Smacss, OOCCS, variables, mixins, preprocesadores CSS Javascript: Backbone, Angular, Ember, Grunt, Yeoman, Bower, preprocesadores javascript Html: No puedo reutilizar código Html escrito en otros ficheros
  • 8. 1.Problemas: Extensibilidad Etiquetas básicas <div><span><p> <table><tr><td> … <font><b><i><small><bold>... <form><input><label><button> … <video><img src=””> ¿Y si necesito elementos nuevos? <grafico-3d>,<grid>, <paleta-colores>, <album-fotos>, <tarjeta-contacto>
  • 9. 1.Problemas: Templates ● Si existen templates en lenguajes de tipo servidor ● Php, Python, Ruby on Rails … ● En cliente aplicamos javascript para usar templates ● Angular, Backbone, Ember ... ● No podemos aplicar templates en el HTML
  • 12. 2. WebComponents. Qué son ● Conjunto de estandares que nos permitirán crear nuestros propios elementos Html ● Formado por 4 estandares: ● Shadow DOM → Encapsulamiento ● HTML Imports → Modularidad ● Templates → Templates ● Custom Elements → Extensibilidad
  • 13. 2. WebComponents. Shadow DOM ● Nueva especificación dentro de webComponents que resuelve los problemas de “encapsulamiento” del CSS/JS ● Es un árbol DOM encapsulado que convive con el DOM padre de una web ● shadow Host: nodo donde se inserta un shadowRoot ● shadow Root: subarbol aislado de la web que cuelga de Host document.getSelector(“div”).createShadowRoot();
  • 15. 2. WebComponents. API Shadow DOM Crear un arbol ShadowDOM document.querySelector('#selector').createShadowRoot(); Comunicación entre arbol DOM y Shadow DOM <content select=''></content> Gestion LIFO entre arboles DOM <shadow></shadow> Nuevas etiquetas css :host, :host(), ::shadow, deep
  • 16. 2. Compatibilidad Shadow DOM Chrome y Opera trabajan con Shadow DOM Firefox: about:config (dom.webcomponents.enabled)
  • 17. 2. WebComponents. CustomElements ● Nueva especificación que resuelve los problemas de extensibilidad ● Permite al usuario definir nuevas etiquetas HTML ● Nomenclatura: usar un guion <my-tag></my-tag> ● Registro de un Custom Element var myTag = document.registerElement('my-tag'); document.body.appendChild(new myTag());
  • 18. 2. Compatibilidad. CustomElements Chrome y Opera trabajan con Custom Elements Firefox: about:config (dom.webcomponents.enabled)
  • 19. 2. WebComponents. Html Imports ● Nueva especificación que nos resuelven los problemas de modularidad ● Permite incluir y reutilizar Html en otros documentos Html Sincrono <link rel="import" href="component1.html"> Asincrono <link rel="import" href="component2.html" async>
  • 20. 2. WebComponents. Html Imports imports a una misma URL solo se cargan 1 vez Vulcanize herramienta de polymer para reducir las peticiones de red mezclando todos los imports en un único fichero
  • 22. 2. WebComponents. Templates ● Nueva especificación dentro de webComponents ● Nos permiten utilizar patrones y formas comunes de trabajar entre los desarrolladores ● Templates no son visibles en el DOM hasta que se invocan <template id="mytemplate"> <img src="" alt="great image"> <div class="comment"></div> </template>
  • 23. 2. WebComponents. Templates var t = document.querySelector('#mytemplate'); t.content.querySelector('img').src = 'logo.png'; var clone = document.importNode(t.content, true); document.body.appendChild(clone); <template id="mytemplate"> <img src="" alt="great image"> <div class="comment"></div> </template> Activamos un template
  • 25. 2. WebComponents. Polyfills ¿Está lista la web para usar webcomponents? ¿Funcionarán mis aplicaciones en todos los navegadores? POLYFILL Trozos de código que permiten añadir funcionalidades nuevas a navegadores que no lo soportan. webcomponents.js: Conjunto de polyfills webcomponents-lite.js: Conjunto más ligero de polyfills sin soporte para shadow DOM
  • 26. 2. WebComponents. Frameworks Polymer Framework para trabajar con web components. Es un proyecto de Google X-Tag Pequeña libreria de javascript para trabajar con WebComponents. Creado y soportado por Mozilla Bosonic Conjunto de herramientas para construir webcomponents.
  • 28. 3. Polymer Librería/Framework javascript sobre el estándar de webcomponents Polymer 1.0 se encuentra en producción desde Mayo 2015
  • 29. 3. Polymer Componentes listos para usar en Polymer 1.0 ● paper-elements: elementos UI con estilo Material Design ● iron-elements: elementos básicos para crear aps ● google-web-components: servicios de google encapsulados en forma de webcomponents ● platinium-elements: notificaciones, cache ... ● gold-elements: componentes para eccommerce ● neon-elements: animaciones
  • 30. 3. Polymer: Repositorios Custom Elements io https://customelements.io/ Catalogo Polymer https://elements.polymer-project.org/
  • 31. 3. Polymer Starter Kit Google Developer ● Polymer-starter-kit-light ● Polymer-starter-kit https://developers.google.com/web/tools/polymer-starter-kit/ Yeoman Polymer npm install -g generator-polymer yo polymer GIT HUB Polymer https://github.com/PolymerElements/polymer-starter-kit/