Hvordan håndteres fejl i kommunikationen?
Nettet er ikke perfekt og vi kan ikke altid stole på at vores datakilder er tilgængelige eller brugerens egen netforbindelse bliver oppe.
Derfor må vi være forberedte på at enhver kommunikation med vores datakilder kan fejle. Hvis vi tager hånd om dette allerede mens vi skriver koden til at hente vores data er vi bedre stillede når en eventuel kommunikationsfejl sker.
I sidste kapitel brugte vi jQuery metoden getJSON til at hente vores data, hvor det første argument var vores URL og det andet argument var en funktion der blev kørt når dataene blev modtaget.
Hvis vi gerne vil angive hvad der skal ske både hvis dataene modtages eller der opstår en fejl kan vi istedet bruge jQuery metoden
ajax. Dette er den samme metode som getJSON også selv kalder, her har vi
blot muligheden for at styre kommunikationen i flere detaljer.
Vores script fil, minkode.js
Koden er ikke så frygtelig anderledes nu, men der er dog blevet ryddet lidt op i strukturen.
Vi har ændret vores hentLinks funktion så den nu kalder ajax metoden i linje 2 til 7 istedet for getJSON metoden.
Her angiver vi vores URL
der stadig er "links.txt" og præciserer at vi forventer JSON data.
Dernæst angiver vi hvilken funktion der skal køres hvis dataene modtages i success argumentet, samt hvilken funktion der skal køres
hvis der sker en fejl i error argumentet.
I sidste kapitel var koden fra visLinks funktionen blandet sammen med hentLinks funktionen og koden i
visLinksFejl fandtes slet ikke. Begge funktioner kunne have været en del af hentLinks funktionen, men ved at dele
disse ud i særskilte funktioner får vi en bedre struktur samtidig med at vores kode bliver mere overskuelig.
Derudover er resten af koden den samme og vores funktionalitet er uændret; nu er vi dog i stand til at håndtere fejl i kommunikationen, såsom hvis filen "links.txt" ikke længere findes.
Du kan se hvordan det komplette eksempel til dette kapitel fungerer i koden.