Fetch API (kmom05) ⚠️
I den här uppgiften ska vi använda data utifrån. Datan hämtas via http-protokollet med hjälp av fetch och vi ska använda datan för att populera en tabell.
Förutsättning
Det förutsätts att du gått igenom artiklarna för kursmomentet samt är det en fördel om du gjort tidigare kursmoment. De ger dig koll på hur vi börjar jobba med JavaScript och webbläsaren.
Intro
Du ska bygga en applikation som belyser bland annat länders utsläpp av koldioxid. Du ska jämföra data för länderna Sverige, Norge och Danmark.
Datan som ska användas kommer från “Our World In Data (owid)”.
I koden ska vi använda Fetch API och hämta filerna från github på följande länk:
https://raw.githubusercontent.com/bth-webtec/teacher/refs/heads/main/kmom05/data/<filename>.json
Tänk på att <filename> byts ut mot landet du vill hämta (sweden, norway, denmark).
Datan innehåller en hel del nycklar och värden och du kan se en lista på dem i owid’s gitrepo.
Bra. Då har du nog allt du behöver för att gå igenom kraven.
Krav
Generell struktur
Du jobbar i mappen public/
.
-
Skapa filen
public/fetch.html
och lägg till menyvalet i navbaren likt tidigare. -
Skapa filen
public/js/fetch.js
och läs in den ifetch.html
. Det är “startfilen” för din JavaScript. -
Skapa filen
public/css/fetch.css
som sköter stylen för uppgiften.
När du är klar bör du ha följande filer, tillsammans med dina tidigare:
Directorypublic
Directoryjs
- fetch.js
Directorycss
- fetch.css
- fetch.html
1. Hämta datan
- Användaren ska via ett
select
element och en eventlyssnare kunna hämta data från alla filer. När man väljer ett årtal ska funktionenfetchData()
triggas. - Filerna ska hämtas med fetch API.
- Använd async/await för att invänta datan.
- Man ska bara kunna välja år mellan
1900
och2019
.
2. Presentera datan
- Datan ska presenteras i en tabell med minst tre kolumner förutom landets namn.
- Välj ut minst ett värde som ska jämföras och “vinnarens” cell ska markeras, tex grön bakgrundsfärg.
Validering
Avslutningsvis
Lycka till och hör av dig om du kör fast eller har några funderingar.