Skip to content

Latest commit

 

History

History
150 lines (120 loc) · 6.34 KB

File metadata and controls

150 lines (120 loc) · 6.34 KB

shieldsIO shieldsIO shieldsIO

WideImg

Máster en Programación FullStack con JavaScript y Node.js

JS, Node.js, Frontend, Backend, Firebase, Express, Patrones, HTML5_APIs, Asincronía, Websockets, Testing

Clase 18

HTTP2

img img img

Recursos

Fetch, una alternativa a XMLHttpRequest

GET básico

function ajaxHandler (url, cb){
  fetch(url)
    .then(function(response) {
      return response.json();
    })
    .then(function(data) {
      cb(data)  
    })
    .catch(function(error) {
      console.log(error)
    });  
}

ajaxHandler("http://airemad.com/api/v1/station", function(data){
    console.log("Data:", data)
})

Multimedia

var myImage = document.querySelector('.my-image');
fetch('flowers.jpg').then(function(response) {
  return response.blob();
}).then(function(blob) {
  var objectURL = URL.createObjectURL(blob);
  myImage.src = objectURL;
});

La mágia es Request

var request = new Request('http://fictizia.com/subir', {
	method: 'POST', 
	mode: 'no-cors', 
	redirect: 'follow',
	headers: new Headers({
		'Content-Type': 'text/plain',
		'X-My-Custom-Header': 'CustomValue'
	})
});

fetch(request).then(function() { //Gestión de la respuesta });

Subir los datos de un formulario

fetch('https://davidwalsh.name/submit', {
	method: 'post',
	body: new FormData(document.getElementById('comment-form'))
});

Documentacion

Recursos

Ejercicios

1 - Refactorizaremos el ejercicio anterior para ofrecer al cliente un dashboard con la listas disponibles en Books API. Especificaciones:

  • Debes incluir una animación mientras esperamos la carga del contenido.
  • Al cargar la web deben de aparecer todas las listas con los siguientes datos:
    • Nombre completo de la lista
    • La fecha del libro más antiguo en la lista
    • La fecha del libro ultimo incorporado
    • La frecuencia de actualización
    • Un link para poder cargar la lista.
  • Al pinchar en el link de una lista especifica el DOM debe cambiar e incluir los siguientes datos:
  • Un bontón para volver atras y recargar la disposición anterior
  • Los libros deben estar organizados según el orden de la lista oficial
  • Debes incluir la carátula del libro
  • Debes incluir la cantidad de semanas que lleva en la lista
  • Debes incluir la descripción
  • Debes incluir el titulo y la posición que ocupa en la lista ( #1 titulo.... #2 titulo....)
  • Debes incluir el link para poder comprar el libro en amazon (debe abrirse en otra pestaña)

Concepto:

  • Dashboard:

NYTimes.png

  • Dentro de una lista:

NYTimes.png

Solución