SlideShare a Scribd company logo
1 of 31
Download to read offline
Curso de Desarrollo Web
Curso de Desarrollo Web
Aprende Online a crear tu propia web
Febrero 2015
@carlosazaustre
+CarlosAzaustre
Curso de Desarrollo Web
Carlos Azaustre
Web Developer, JavaScript Lover
Ingeniero en Telemática.
Estudiante de Platzi.
CTO & CoFounder en Chefly.
Co-Organizador en Hackathon Lovers.
Co-Organizador en Nodeschool Madrid.
Curso de Desarrollo Web
Desarrollo Web Moderno
www
Aplicación Cliente
Curso de Desarrollo Web
Desarrollo Web Moderno
www
Aplicación Cliente
Curso de Desarrollo Web
Desarrollo Web Moderno
www
Aplicación Cliente Servidor
Curso de Desarrollo Web
Desarrollo Web Moderno
www
Aplicación Cliente Servidor Base de Datos
Curso de Desarrollo Web
Desarrollo Web Moderno
www
Aplicación Cliente Servidor Base de Datos
Curso de Desarrollo Web
HTML5 CSS3 JavaScript
Curso de Desarrollo Web
API REST
[{
“nombre”: “Desarrollo Web”,
“nivel”: “basico”,
“url”: “platzi.com/online”
},
{
“nombre”: “Frontend Profesional”,
“nivel”: “intermedio”,
“url”: “platzi.com/frontend”
},
{
“nombre”: “JavaScript y Node.js”,
“nivel”: “avanzado”,
“url”: “platzi.com/js”
},
...]
GET /cursos
JSON
JavaScript
Object
Notation
Curso de Desarrollo Web
API REST
Método ¿Qué hace?
GET Devuelve un recurso o una lista de recursos
POST Registra un nuevo recurso
PUT Actualiza un recurso existente
DELETE Elimina un recurso existente
Curso de Desarrollo Web
API REST
Código Significado
200 Todo fue OK
300 El contenido está en otro sitio y será redirigido
400 Acceso prohibido o el recurso no existe
403 Acceso prohibido o restringido
404 El recurso no existe
500 Error interno del servidor
Curso de Desarrollo Web
JSONP vs CORS
Same-Origin Policy
Solo se puede acceder al DOM si el script está en el mismo origen (esquema,
hostname, puerto)
Refused to connect to ‘http://api.com/recurso’
because it violates the following Content
Security Policy directive
Curso de Desarrollo Web
JSONP vs CORS
Same-Origin Policy
Solo se puede acceder al DOM si el script está en el mismo origen (esquema,
hostname, puerto)
JSONP
JSON con Padding.
● Muchas APIs públicas funcionan
con JSONP, necesita una función
de callback en la llamada al API
● ej: http://api.com/recursos/?
callback=miFuncionDeCallback
● Solo permite el método GET de
HTTP
CORS
Cross-Origin Resource Sharing
● Permite más metodos de HTTP
(GET, POST, PUT, DELETE)
● Ha de configurarse en el servidor.
Podemos elegir a quién dar
acceso
Curso de Desarrollo Web
DOM
Document Object Model
<html>
Curso de Desarrollo Web
DOM
Document Object Model
<html>
<head> <body>
Curso de Desarrollo Web
DOM
Document Object Model
<html>
<head> <body>
<header><title> <link> <section>
Curso de Desarrollo Web
DOM
Document Object Model
<html>
<head> <body>
<header>
<h1> <p> <span>
<title> <link> <section>
Curso de Desarrollo Web
BOM
Browser Object Model
window
document
navigator
history
location
. . .
anchors
forms
images
links
. . .
Curso de Desarrollo Web
jQuery
librería JS para ayudarnos
en el DOM y AJAX
Curso de Desarrollo Web
Comparación JS <-> jQuery
document.getElementById(“myDiv”); $(“#myDiv”);
function clickHandler() { … }
var anchor = document.getElementById
(“anchorID”);
if(anchor.addEventListener) {
anchor.addEventListener(“click”,
clickHandler, true);
}
else if(anchor.attachEvent) {
anchor.attachEvent(“onclick”,
function() {
return clickHandler.apply(
anchor,
[window.event]
);
});
}
function clickHandler() { … }
$(“#anchorID”).on(“click”, clickHandler);
Curso de Desarrollo Web
Petición AJAX en JS
var xhr;
// IE7+, Firefox, Chrome, Opera, Safari
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
// IE6, IE5
else {
xhr = new ActiveXObject(“Microsoft.XMLHTTP”);
}
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
document.getElementById(“myDiv”).innerHTML = xhr.responseText;
}
xhr.open(“GET”, “http://example.com/recurso”, true);
xhr.send();
}
Curso de Desarrollo Web
Petición AJAX en JS
var xhr;
// IE7+, Firefox, Chrome, Opera, Safari
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
// IE6, IE5
else {
xhr = new ActiveXObject(“Microsoft.XMLHTTP”);
}
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
document.getElementById(“myDiv”).innerHTML = xhr.responseText;
}
xhr.open(“GET”, “http://example.com/recurso”, true);
xhr.send();
}
Curso de Desarrollo Web
Petición AJAX con jQuery
$.ajax({
type: “GET”,
url: “http://example.com/recurso”,
context: document.body
}).done(function(data) {
$(“#myDiv”).html(data);
});
$.getJSON({“http://example.com/recurso”,
function(data) {
$(“#myDiv”).html(data);
});
o también
Curso de Desarrollo Web
Petición AJAX con jQuery
$.ajax({
type: “GET”,
url: “http://example.com/recurso”,
context: document.body
}).done(function(data) {
$(“#myDiv”).html(data);
});
$.getJSON({“http://example.com/recurso”,
function(data) {
$(“#myDiv”).html(data);
});
o también
Curso de Desarrollo Web
HTML5
Elementos Cool
● LocalStorage
● GeoLocation
● Template
● ...
Curso de Desarrollo Web
Uso de geoLocation
navigator
.geolocation
.getCurrentPosition(getCoords, errorFound);
function errorFound(err) {
alert(“Ocurrió un error: “ +err);
}
function getCoords(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
alert(“Tu posición es: “ + lat + “;” + lon);
}
Curso de Desarrollo Web
Uso de <template>
<template id=”myTemplate”>
<h1></h1>
<p></p>
</template>
HTML
Curso de Desarrollo Web
Uso de <template>
<template id=”myTemplate”>
<h1></h1>
<p></p>
</template>
HTML
var t = document.querySelector(“myTemplate”);
var clone = document.importNode(t.content, true);
clone.querySelector(“h1”).innerHTML = “Platzi”
clone.querySelector(“p”).innerHTML = “Aprende a crear
el futuro de internet”;
document.body.appendChild(clone);
JS
Curso de Desarrollo Web
Uso de <template>
<template id=”myTemplate”>
<h1></h1>
<p></p>
</template>
HTML
var t = document.querySelector(“myTemplate”);
var clone = document.importNode(t.content, true);
clone.querySelector(“h1”).innerHTML = “Platzi”
clone.querySelector(“p”).innerHTML = “Aprende a crear
el futuro de internet”;
document.body.appendChild(clone);
JS
Resultado HTML
<h1>Platzi</h1>
<p>Aprende a crear el
futuro de internet</p>
Curso de Desarrollo Web
Uso de LocalStorage
var elemento = “hola mundo”;
localStorage.setItem(“clave”, elemento);
console.log(localStorage.getItem(“clave”));
// hola mundo
Curso de Desarrollo Web
Uso de LocalStorage
var obj = {
“titulo”: “desarrollo web”,
“nivel”: “básico”,
“plataforma”: “Platzi”
};
var objString = JSON.stringify(obj);
localStorage[‘curso’] = objString;
var elem = localStorage.curso;
var elemParsed = JSON.parse(elem);
console.log(elemParsed);
//
{“titulo”: “desarrollo web”,
“nivel”: “básico”,
“plataforma”: “Platzi”}

More Related Content

Viewers also liked

#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScript#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScriptCarlos Azaustre
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCCarlos Azaustre
 
Curso iOS
Curso iOSCurso iOS
Curso iOSPlatzi
 
Curso Swift
Curso SwiftCurso Swift
Curso SwiftPlatzi
 
Curso de Responsive Design
Curso de Responsive DesignCurso de Responsive Design
Curso de Responsive DesignCarlos Azaustre
 
Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Carlos Azaustre
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.jsCarlos Azaustre
 
Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesIván Campaña Naranjo
 
Generadores Web en Salto - Claudia Murialdo
Generadores Web en Salto - Claudia MurialdoGeneradores Web en Salto - Claudia Murialdo
Generadores Web en Salto - Claudia MurialdoGeneXus
 
Neurociencia aplicada al desarrollo con GeneXus - Gustavo Tejera
Neurociencia aplicada al desarrollo con GeneXus - Gustavo TejeraNeurociencia aplicada al desarrollo con GeneXus - Gustavo Tejera
Neurociencia aplicada al desarrollo con GeneXus - Gustavo TejeraGeneXus
 
0041 rest web_services_en_genexus
0041 rest web_services_en_genexus0041 rest web_services_en_genexus
0041 rest web_services_en_genexusGeneXus
 
El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...OpenExpoES
 
Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaOpenExpoES
 
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y SaltoLaboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y SaltoGeneXus
 
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...GeneXus
 

Viewers also liked (20)

#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScript#PlatziConf - El camino para ser un Pro en JavaScript
#PlatziConf - El camino para ser un Pro en JavaScript
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCC
 
Curso iOS
Curso iOSCurso iOS
Curso iOS
 
Curso Swift
Curso SwiftCurso Swift
Curso Swift
 
Curso de HTML5
Curso de HTML5Curso de HTML5
Curso de HTML5
 
Curso de Responsive Design
Curso de Responsive DesignCurso de Responsive Design
Curso de Responsive Design
 
Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017
 
Login social con node.js
Login social con node.jsLogin social con node.js
Login social con node.js
 
Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móviles
 
Diploma Backend Developer
Diploma Backend DeveloperDiploma Backend Developer
Diploma Backend Developer
 
Generadores Web en Salto - Claudia Murialdo
Generadores Web en Salto - Claudia MurialdoGeneradores Web en Salto - Claudia Murialdo
Generadores Web en Salto - Claudia Murialdo
 
Diploma google-fullstack
Diploma google-fullstackDiploma google-fullstack
Diploma google-fullstack
 
Neurociencia aplicada al desarrollo con GeneXus - Gustavo Tejera
Neurociencia aplicada al desarrollo con GeneXus - Gustavo TejeraNeurociencia aplicada al desarrollo con GeneXus - Gustavo Tejera
Neurociencia aplicada al desarrollo con GeneXus - Gustavo Tejera
 
Diploma programacion-android
Diploma programacion-androidDiploma programacion-android
Diploma programacion-android
 
0041 rest web_services_en_genexus
0041 rest web_services_en_genexus0041 rest web_services_en_genexus
0041 rest web_services_en_genexus
 
El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...El software libre como una buena oportunidad para las grandes empresas- OpenE...
El software libre como una buena oportunidad para las grandes empresas- OpenE...
 
Taller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfectaTaller de Angular JS: La solución tecnológica perfecta
Taller de Angular JS: La solución tecnológica perfecta
 
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y SaltoLaboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto
 
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...
Laboratorio: Desarrollo de aplicaciones Web con GeneXus Evolution 3 y Salto (...
 

Similar to Curso de Desarrollo Web de Platzi

Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guestd24c393
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guest976d083
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSIan Monge Pérez
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008Mitusin
 
Seminario jquery, html5 y wicket
Seminario jquery, html5 y wicketSeminario jquery, html5 y wicket
Seminario jquery, html5 y wicketAdrià Solé Orrit
 
Web20
Web20Web20
Web20UJAP
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web DevelopmentJaime Irurzun
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQueryContinuum
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)Iran Reyes Fleitas
 

Similar to Curso de Desarrollo Web de Platzi (20)

introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Ajax
AjaxAjax
Ajax
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Mootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JSMootools Y Otros Frameworks JS
Mootools Y Otros Frameworks JS
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
HTML5-Aplicaciones web
HTML5-Aplicaciones webHTML5-Aplicaciones web
HTML5-Aplicaciones web
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008
 
Seminario jquery, html5 y wicket
Seminario jquery, html5 y wicketSeminario jquery, html5 y wicket
Seminario jquery, html5 y wicket
 
Web20
Web20Web20
Web20
 
myprofly
myproflymyprofly
myprofly
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
Ajax
AjaxAjax
Ajax
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
J query
J queryJ query
J query
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web Development
 
Presentacion ajax
Presentacion   ajaxPresentacion   ajax
Presentacion ajax
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)HTML 5 & WebGL (Spanish Version)
HTML 5 & WebGL (Spanish Version)
 

More from Carlos Azaustre

Introducción al JAMStack - JS Ourense
Introducción al JAMStack - JS OurenseIntroducción al JAMStack - JS Ourense
Introducción al JAMStack - JS OurenseCarlos Azaustre
 
Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos Carlos Azaustre
 
Your First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + FirebaseYour First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + FirebaseCarlos Azaustre
 
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIsPixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIsCarlos Azaustre
 
Prototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGiversPrototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGiversCarlos Azaustre
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonCarlos Azaustre
 
Hack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSHack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSCarlos Azaustre
 
Angular 2 is Coming - GDG DevFest Cordoba 2015
Angular 2 is Coming - GDG DevFest Cordoba 2015Angular 2 is Coming - GDG DevFest Cordoba 2015
Angular 2 is Coming - GDG DevFest Cordoba 2015Carlos Azaustre
 
Taller de Seo y Facebook Ads
Taller de Seo y Facebook AdsTaller de Seo y Facebook Ads
Taller de Seo y Facebook AdsCarlos Azaustre
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJSCarlos Azaustre
 
Chefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup SchoolChefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup SchoolCarlos Azaustre
 
Nuestra experiencia emprendedora
Nuestra experiencia emprendedoraNuestra experiencia emprendedora
Nuestra experiencia emprendedoraCarlos Azaustre
 

More from Carlos Azaustre (13)

Introducción al JAMStack - JS Ourense
Introducción al JAMStack - JS OurenseIntroducción al JAMStack - JS Ourense
Introducción al JAMStack - JS Ourense
 
Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos Serverless with Firebase - Launchpad Build Burgos
Serverless with Firebase - Launchpad Build Burgos
 
Your First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + FirebaseYour First Assistant App with DialogFlow + Firebase
Your First Assistant App with DialogFlow + Firebase
 
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIsPixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
PixelsCamp 2017 - Cloud Functions for Firebase and Machine Learning APIs
 
Prototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGiversPrototipado de Aplicaciones web con Firebase #CampusGivers
Prototipado de Aplicaciones web con Firebase #CampusGivers
 
Hack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un HackathonHack2Progress - Consejos para afrontar un Hackathon
Hack2Progress - Consejos para afrontar un Hackathon
 
Hack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJSHack2Progress - Desarrollando una aplicación web con AngularJS
Hack2Progress - Desarrollando una aplicación web con AngularJS
 
Angular 2 is Coming - GDG DevFest Cordoba 2015
Angular 2 is Coming - GDG DevFest Cordoba 2015Angular 2 is Coming - GDG DevFest Cordoba 2015
Angular 2 is Coming - GDG DevFest Cordoba 2015
 
Taller de Seo y Facebook Ads
Taller de Seo y Facebook AdsTaller de Seo y Facebook Ads
Taller de Seo y Facebook Ads
 
Curso Básico de AngularJS
Curso Básico de AngularJSCurso Básico de AngularJS
Curso Básico de AngularJS
 
Chefly Keynote at ETSII
Chefly Keynote at ETSIIChefly Keynote at ETSII
Chefly Keynote at ETSII
 
Chefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup SchoolChefly: Pitch for Tetuan Valley Startup School
Chefly: Pitch for Tetuan Valley Startup School
 
Nuestra experiencia emprendedora
Nuestra experiencia emprendedoraNuestra experiencia emprendedora
Nuestra experiencia emprendedora
 

Recently uploaded

2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptxEncomiendasElSherpa
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfGuillermoBarquero7
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralAitana
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSBeatrizGonzales19
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaKANTUPAULAPORCELYUCR
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 

Recently uploaded (6)

2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 

Curso de Desarrollo Web de Platzi

  • 1. Curso de Desarrollo Web Curso de Desarrollo Web Aprende Online a crear tu propia web Febrero 2015 @carlosazaustre +CarlosAzaustre
  • 2. Curso de Desarrollo Web Carlos Azaustre Web Developer, JavaScript Lover Ingeniero en Telemática. Estudiante de Platzi. CTO & CoFounder en Chefly. Co-Organizador en Hackathon Lovers. Co-Organizador en Nodeschool Madrid.
  • 3. Curso de Desarrollo Web Desarrollo Web Moderno www Aplicación Cliente
  • 4. Curso de Desarrollo Web Desarrollo Web Moderno www Aplicación Cliente
  • 5. Curso de Desarrollo Web Desarrollo Web Moderno www Aplicación Cliente Servidor
  • 6. Curso de Desarrollo Web Desarrollo Web Moderno www Aplicación Cliente Servidor Base de Datos
  • 7. Curso de Desarrollo Web Desarrollo Web Moderno www Aplicación Cliente Servidor Base de Datos
  • 8. Curso de Desarrollo Web HTML5 CSS3 JavaScript
  • 9. Curso de Desarrollo Web API REST [{ “nombre”: “Desarrollo Web”, “nivel”: “basico”, “url”: “platzi.com/online” }, { “nombre”: “Frontend Profesional”, “nivel”: “intermedio”, “url”: “platzi.com/frontend” }, { “nombre”: “JavaScript y Node.js”, “nivel”: “avanzado”, “url”: “platzi.com/js” }, ...] GET /cursos JSON JavaScript Object Notation
  • 10. Curso de Desarrollo Web API REST Método ¿Qué hace? GET Devuelve un recurso o una lista de recursos POST Registra un nuevo recurso PUT Actualiza un recurso existente DELETE Elimina un recurso existente
  • 11. Curso de Desarrollo Web API REST Código Significado 200 Todo fue OK 300 El contenido está en otro sitio y será redirigido 400 Acceso prohibido o el recurso no existe 403 Acceso prohibido o restringido 404 El recurso no existe 500 Error interno del servidor
  • 12. Curso de Desarrollo Web JSONP vs CORS Same-Origin Policy Solo se puede acceder al DOM si el script está en el mismo origen (esquema, hostname, puerto) Refused to connect to ‘http://api.com/recurso’ because it violates the following Content Security Policy directive
  • 13. Curso de Desarrollo Web JSONP vs CORS Same-Origin Policy Solo se puede acceder al DOM si el script está en el mismo origen (esquema, hostname, puerto) JSONP JSON con Padding. ● Muchas APIs públicas funcionan con JSONP, necesita una función de callback en la llamada al API ● ej: http://api.com/recursos/? callback=miFuncionDeCallback ● Solo permite el método GET de HTTP CORS Cross-Origin Resource Sharing ● Permite más metodos de HTTP (GET, POST, PUT, DELETE) ● Ha de configurarse en el servidor. Podemos elegir a quién dar acceso
  • 14. Curso de Desarrollo Web DOM Document Object Model <html>
  • 15. Curso de Desarrollo Web DOM Document Object Model <html> <head> <body>
  • 16. Curso de Desarrollo Web DOM Document Object Model <html> <head> <body> <header><title> <link> <section>
  • 17. Curso de Desarrollo Web DOM Document Object Model <html> <head> <body> <header> <h1> <p> <span> <title> <link> <section>
  • 18. Curso de Desarrollo Web BOM Browser Object Model window document navigator history location . . . anchors forms images links . . .
  • 19. Curso de Desarrollo Web jQuery librería JS para ayudarnos en el DOM y AJAX
  • 20. Curso de Desarrollo Web Comparación JS <-> jQuery document.getElementById(“myDiv”); $(“#myDiv”); function clickHandler() { … } var anchor = document.getElementById (“anchorID”); if(anchor.addEventListener) { anchor.addEventListener(“click”, clickHandler, true); } else if(anchor.attachEvent) { anchor.attachEvent(“onclick”, function() { return clickHandler.apply( anchor, [window.event] ); }); } function clickHandler() { … } $(“#anchorID”).on(“click”, clickHandler);
  • 21. Curso de Desarrollo Web Petición AJAX en JS var xhr; // IE7+, Firefox, Chrome, Opera, Safari if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } // IE6, IE5 else { xhr = new ActiveXObject(“Microsoft.XMLHTTP”); } xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { document.getElementById(“myDiv”).innerHTML = xhr.responseText; } xhr.open(“GET”, “http://example.com/recurso”, true); xhr.send(); }
  • 22. Curso de Desarrollo Web Petición AJAX en JS var xhr; // IE7+, Firefox, Chrome, Opera, Safari if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } // IE6, IE5 else { xhr = new ActiveXObject(“Microsoft.XMLHTTP”); } xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { document.getElementById(“myDiv”).innerHTML = xhr.responseText; } xhr.open(“GET”, “http://example.com/recurso”, true); xhr.send(); }
  • 23. Curso de Desarrollo Web Petición AJAX con jQuery $.ajax({ type: “GET”, url: “http://example.com/recurso”, context: document.body }).done(function(data) { $(“#myDiv”).html(data); }); $.getJSON({“http://example.com/recurso”, function(data) { $(“#myDiv”).html(data); }); o también
  • 24. Curso de Desarrollo Web Petición AJAX con jQuery $.ajax({ type: “GET”, url: “http://example.com/recurso”, context: document.body }).done(function(data) { $(“#myDiv”).html(data); }); $.getJSON({“http://example.com/recurso”, function(data) { $(“#myDiv”).html(data); }); o también
  • 25. Curso de Desarrollo Web HTML5 Elementos Cool ● LocalStorage ● GeoLocation ● Template ● ...
  • 26. Curso de Desarrollo Web Uso de geoLocation navigator .geolocation .getCurrentPosition(getCoords, errorFound); function errorFound(err) { alert(“Ocurrió un error: “ +err); } function getCoords(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; alert(“Tu posición es: “ + lat + “;” + lon); }
  • 27. Curso de Desarrollo Web Uso de <template> <template id=”myTemplate”> <h1></h1> <p></p> </template> HTML
  • 28. Curso de Desarrollo Web Uso de <template> <template id=”myTemplate”> <h1></h1> <p></p> </template> HTML var t = document.querySelector(“myTemplate”); var clone = document.importNode(t.content, true); clone.querySelector(“h1”).innerHTML = “Platzi” clone.querySelector(“p”).innerHTML = “Aprende a crear el futuro de internet”; document.body.appendChild(clone); JS
  • 29. Curso de Desarrollo Web Uso de <template> <template id=”myTemplate”> <h1></h1> <p></p> </template> HTML var t = document.querySelector(“myTemplate”); var clone = document.importNode(t.content, true); clone.querySelector(“h1”).innerHTML = “Platzi” clone.querySelector(“p”).innerHTML = “Aprende a crear el futuro de internet”; document.body.appendChild(clone); JS Resultado HTML <h1>Platzi</h1> <p>Aprende a crear el futuro de internet</p>
  • 30. Curso de Desarrollo Web Uso de LocalStorage var elemento = “hola mundo”; localStorage.setItem(“clave”, elemento); console.log(localStorage.getItem(“clave”)); // hola mundo
  • 31. Curso de Desarrollo Web Uso de LocalStorage var obj = { “titulo”: “desarrollo web”, “nivel”: “básico”, “plataforma”: “Platzi” }; var objString = JSON.stringify(obj); localStorage[‘curso’] = objString; var elem = localStorage.curso; var elemParsed = JSON.parse(elem); console.log(elemParsed); // {“titulo”: “desarrollo web”, “nivel”: “básico”, “plataforma”: “Platzi”}