1.4 Veebiteenuse optimeerimine ja andmete puhverdamine ning dubleerimine

Andmete puhverdamine (Data Caching)

Andmete puhverdamine on protsess, kus andmed või failid salvestatakse ajutisse salvestuskohta (vahemällu), et neile saaks kiiremini ligi pääseda. See võimaldab tarkvaral, serveril või veebibrauseril vältida korduvat andmete allalaadimist ning kiirendab rakenduse või veebilehe laadimist.

Eesmärk: vähendada võrgu- ja serverikoormust ning parandada kasutajakogemust.

Puhverdamist kasutatakse sageli API vastuste, piltide, CSS/JS failide ja kasutajaandmete ajutiseks salvestamiseks, et järgmised külastused oleksid kiiremalt laetavad.

Andmete dubleerimine (Data Replication)

Andmete dubleerimine tähendab andmete kopeerimist ja säilitamist mitmes asukohas — kas samas süsteemis, teises serveris või pilveteenuses. Selle eesmärk on suurendada kättesaadavust, andmete turvalisust ja lugemise kiirust.

Andmete dubleerimise eelised

localStorage ja sessionStorage

localStorage ja sessionStorage on brauseri mehhanismid, mis võimaldavad salvestada andmeid võtme–väärtuse paaridena kliendipoolel.

Näide kasutusest: Kasutaja sisselogimise oleku, eelistuste või viimase otsingu tulemuste ajutine salvestamine ilma serveripäringuta.

Küpsised (Cookies)

HTTP-protokoll on olemuselt seansivaba — iga päring on iseseisev, mistõttu server ei tea, kas mitu päringut tulevad samalt kasutajalt. Selle probleemi lahendamiseks kasutatakse küpsiseid.

Küpsised on väikesed nimi = väärtus paarid, mida server saadab kliendile ning mida brauser saadab järgnevate päringutega tagasi kuni küpsis aegub. Nii saab server eristada erinevaid kasutajaid ja hallata sessioone.

Küpsiste kasutusnäited

Kuidas localStorage töötab?

Kui küpsised liiguvad HTTP päringu päistes serveri ja kliendi vahel, siis localStorage on brauseripoolne salvestuskoht, millele pääseb ligi ainult JavaScriptiga.

Tähtis: localStorage on domeenipõhine – teised domeenid ei näe teise veebilehe andmeid (nt Facebook ei pääse ligi Gmaili localStorage’ile).

localStorage meetodid

Näide localStorage’i kasutamisest puhverdamiseks

// Kontrollime, kas vahemälus on andmeid
let widgetsCache = localStorage.getItem("widgetsCache")
  ? JSON.parse(localStorage.getItem("widgetsCache")) // kui on, parsi JSON objektiks
  : fetch("/api/widgets")                            // kui pole, tee võrgupäring
      .then(res => res.json());

// Salvestame andmed localStorage’sse tulevikuks
localStorage.setItem("widgetsCache", JSON.stringify(widgetsCache));
Example
Selgitus:
  • Kontrollitakse, kas andmed on juba localStorage’is olemas.
  • Kui on, kasutatakse neid ilma uut võrgupäringut tegemata.
  • Kui ei ole, tehakse API päring ja saadud andmed salvestatakse localStorage’sse.
  • Järgmisel korral laaditakse andmed kiiremini – see on puhverdamine.

Kokkuvõte

Veebiteenuse optimeerimisel on võtmetähtsusega puhverdamine (kiirem andmete kättesaamine) ja dubleerimine (andmete turvalisus ja töökindlus). Brauseripoolsed tööriistad nagu localStorage, sessionStorage ja küpsised aitavad vähendada serverikoormust ning parandada kasutajakogemust, säilitades olulised andmed lokaalselt.