SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
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”}

Contenu connexe

Tendances

As vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projetoAs vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projetoGabriel Galdino
 
Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2Pacc UAB
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Imagen digital: tipos, compresión y formatos
Imagen digital: tipos, compresión y formatosImagen digital: tipos, compresión y formatos
Imagen digital: tipos, compresión y formatosJOSE ALFREDO HERNANDEZ
 
Introdução ao Spring Framework MVC
Introdução ao Spring Framework MVCIntrodução ao Spring Framework MVC
Introdução ao Spring Framework MVCMessias Batista
 
Mapa conceptual java
Mapa conceptual java Mapa conceptual java
Mapa conceptual java hack-13
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringDaniel Brandão
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...PotiLivre Sobrenome
 
Vectores en power point [recuperado]
Vectores en power point [recuperado]Vectores en power point [recuperado]
Vectores en power point [recuperado]herminiajimenez123
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 
Caderno de exercícios cobol
Caderno de exercícios   cobolCaderno de exercícios   cobol
Caderno de exercícios cobolAlunosEscola
 
Lista duplamente encadeada em python
Lista duplamente encadeada em pythonLista duplamente encadeada em python
Lista duplamente encadeada em pythonCiro Rafael
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalRodrigo Kiyoshi Saito
 

Tendances (20)

Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
As vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projetoAs vantagens e desvantagens da aplicação de padrões de projeto
As vantagens e desvantagens da aplicação de padrões de projeto
 
Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Tabela Hash
Tabela HashTabela Hash
Tabela Hash
 
Imagen digital: tipos, compresión y formatos
Imagen digital: tipos, compresión y formatosImagen digital: tipos, compresión y formatos
Imagen digital: tipos, compresión y formatos
 
Introdução ao Spring Framework MVC
Introdução ao Spring Framework MVCIntrodução ao Spring Framework MVC
Introdução ao Spring Framework MVC
 
Mapa conceptual java
Mapa conceptual java Mapa conceptual java
Mapa conceptual java
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
Processamento digital de imagens com gnu octave jotacisio araujo oliveira fli...
 
Vectores en power point [recuperado]
Vectores en power point [recuperado]Vectores en power point [recuperado]
Vectores en power point [recuperado]
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Caderno de exercícios cobol
Caderno de exercícios   cobolCaderno de exercícios   cobol
Caderno de exercícios cobol
 
Psi m14
Psi m14Psi m14
Psi m14
 
Lista duplamente encadeada em python
Lista duplamente encadeada em pythonLista duplamente encadeada em python
Lista duplamente encadeada em python
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
React Native - JSday
React Native - JSdayReact Native - JSday
React Native - JSday
 

En vedette

#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
 

En vedette (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 (...
 

Similaire à 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
 

Similaire à 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)
 

Plus de 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
 

Plus de 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
 

Dernier

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 

Dernier (6)

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 

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”}