IndexedDB on selaimen sisäänrakennettu tallennusjärjestelmä suurelle, jäsennellylle tiedolle. Opi, mikä se on, miten se toimii ja milloin sivustot käyttävät sitä paikallisen tai istuntotallennustilan sijaan.
Oletko koskaan käyttänyt verkkosovellusta, joka toimi vielä silloinkin, kun nettiyhteys katkesi? Tai sellaista, joka tuntui yhtä nopealta kuin puhelimeen asennettu natiivisovellus ja jossa suuret tietomäärät latautuivat heti? Näiden kokemusten takana on yleensä jotain paljon tehokkaampaa kuin tähän mennessä käsitellyt selaimen perustallennustyökalut. Se jokin on IndexedDB.
IndexedDB on tehokkain käytettävissä oleva selaimen tallennustyyppi, ja se on tasoa ylempänä kuin se, mihin paikallinen tallennustila ja istuntotallennustila on suunniteltu. Useimmat yrityssivustojen omistajat eivät koskaan käytä sitä suoraan, mutta sen ymmärtäminen antaa kokonaiskuvan siitä, mitä selaimet pystyvät tallentamaan.
Mikä on IndexedDB?
IndexedDB on selaimeen sisäänrakennettu matalan tason tietokanta. Toisin kuin paikallinen ja istuntotallennustila, jotka tallentavat yksinkertaisia avain-arvo-pareja tekstinä, IndexedDB voi tallentaa jäsenneltyä tietoa: olioita, taulukoita, tiedostoja ja binääridataa. Se on haettavissa, indeksoitavissa ja pystyy tallentamaan paljon enemmän tietoa kuin muut selaimen tallennustyypit.
Nimestä näkee vihjeen siitä, miten se toimii. Se käyttää indeksejä, jotka ovat kuin hakutaulukoita, löytääkseen tallennetut tietueet nopeasti läpikäymättä kaikkea. Tämä tekee siitä käytännöllisen suurten, jäsenneltyjen tietomäärien tallentamiseen ja hakemiseen itse selaimessa.
Miten IndexedDB eroaa muusta selaimen tallennustilasta?
Paikallinen tallennustila tallentaa pieniä tekstiarvoja ja säilyttää ne toistaiseksi. Istuntotallennustila tekee saman, mutta vain nykyisen välilehti-istunnon ajan. Molemmat ovat yksinkertaisia ja rajallisia. IndexedDB on laajuudeltaan ja ominaisuuksiltaan pohjimmiltaan erilainen.
Tallennuskapasiteetti on yksi pääeroista. Kun paikallisen tallennustilan raja on tyypillisesti 5-10 megatavua, IndexedDB voi tallentaa satoja megatavuja tai enemmän selaimesta ja laitteesta riippuen. Se tallentaa myös monimutkaisia tietorakenteita suoraan, ei vain pelkkää tekstiä. Ja se tukee kyselyitä, eli sivusto voi hakea ja suodattaa tallennettuja tietueita sen sijaan, että hakisi vain arvon tarkalla avaimellaan.
Mihin sivustot käyttävät IndexedDB:tä?
Offline-toiminnot
Verkkosovellukset, joiden täytyy toimia ilman nettiyhteyttä, käyttävät IndexedDB:tä tallentaakseen tietoa paikallisesti laitteelle. Muistiinpanosovellus, projektinhallintatyökalu tai sähköpostiohjelma voi tallentaa tietueita IndexedDB:hen, jolloin vierailija voi silti lukea, luoda ja muokata sisältöä offline-tilassa. Muutokset synkronoidaan takaisin palvelimelle, kun yhteys palautuu.
Suuret tietojoukot selaimessa
Sovellukset, jotka käsittelevät suuria tietomääriä, kuten karttoja, monimutkaisia suodattimia tai suuria tuoteluetteloita, voivat käyttää IndexedDB:tä tietojen välimuistittamiseen paikallisesti. Tämä vähentää sitä, kuinka usein sovelluksen täytyy hakea tietoa palvelimelta, ja tekee kokemuksesta käyttäjälle huomattavasti nopeamman.
Tiedostojen tallennus
IndexedDB voi tallentaa tiedostoja suoraan selaimeen. Tämä tekee siitä hyödyllisen sovelluksissa, joissa käyttäjät lataavat tai luovat sisältöä, jonka täytyy olla käytettävissä istunnosta toiseen ennen kuin se lähetetään palvelimelle.
Käyttävätkö useimmat sivustot IndexedDB:tä?
Eivät. IndexedDB:tä käyttävät monimutkaiset verkkosovellukset, eivät tyypilliset yrityssivustot. Markkinointisivusto, palvelusivusto, verkkokauppa ja useimmat sisältöpainotteiset sivustot eivät tarvitse sitä. Niiden tallennustarpeet hoituvat hyvin evästeillä, paikallisella tallennustilalla ja istuntotallennustilalla.
Omalla sivustollasi alusta, jolle rakennat, hoitaa kaikki tallennuspäätökset. WEMASYn Sivustonrakentaja käyttää automaattisesti oikeaa tallennustyyppiä kullekin ominaisuudelle. Jos haluat nähdä kaikki selaimen tallennustyypit rinnakkain ja miten ne sopivat yhteen, lue selaimen tallennustyypit.
Usein kysytyt kysymykset
Onko IndexedDB oikea tietokanta?
Se on tietokanta siinä mielessä, että se tallentaa jäsenneltyä tietoa, tukee indeksointia ja sallii kyselyt. Mutta se on hyvin erilainen kuin palvelinpuolen tietokanta. Se toimii kokonaan selaimessa vierailijan laitteella, ei etäpalvelimella. Se on suunniteltu asiakaspuolen tallennukseen, ei sellaiseen jaettuun, monen käyttäjän tiedonhallintaan, jota palvelintietokannat hoitavat. WEMASYn verkkosivustorakentimella saat tämän käyttöön suoraan omalla sivustollasi.
Kuinka paljon tietoa IndexedDB voi tallentaa?
Paljon enemmän kuin paikallinen tai istuntotallennustila. Useimmat selaimet sallivat IndexedDB:n käyttää merkittävän osan käytettävissä olevasta levytilasta, usein satoja megatavuja tai enemmän. Selain voi pyytää käyttäjältä lupaa, jos sivusto yrittää tallentaa hyvin suuren määrän. Tarkka raja vaihtelee selaimen mukaan ja voi riippua myös siitä, kuinka paljon vapaata tilaa laitteella on.
Säilyvätkö IndexedDB-tiedot selaimen sulkemisen jälkeen?
Säilyvät. IndexedDB-tiedot ovat oletuksena pysyviä, samoin kuin paikallisessa tallennustilassa. Ne pysyvät selaimessa, kunnes käyttäjä tyhjentää selaimen tiedot tai sivusto poistaa ne. Tämä pysyvyys tekee IndexedDB:stä sopivan offline-toimintoihin kykeneville sovelluksille, joissa tietojen täytyy säilyä istuntojen välillä.
Onko IndexedDB turvallinen?
IndexedDB on eristetty sivustoittain, joten yksi sivusto ei pääse toisen sivuston tietoihin. Mutta kuten muu selaimen tallennustila, se on sivulla ajettavien skriptien käytettävissä. Arkaluonteisia tietoja, kuten salasanoja, maksutietoja ja henkilötietoja, ei pidä koskaan tallentaa IndexedDB:hen. Se sopii hyvin sovellustiedoille ja suurelle sisällölle, mutta sitä ei pidä käyttää turvallisen palvelinpuolen tallennuksen korvikkeena.
Voivatko vierailijat tyhjentää IndexedDB-tietonsa?
Voivat. Selaimen tietojen tyhjentäminen selaimen asetuksista poistaa IndexedDB:n evästeiden, paikallisen tallennustilan ja välimuistin mukana. Vierailijat voivat tyhjentää sen myös kehittäjätyökaluilla. Sovellusten, jotka luottavat IndexedDB:hen tärkeiden tietojen osalta, pitäisi ottaa tämä huomioon synkronoimalla tiedot palvelimelle, kun yhteys on käytettävissä, jotta paikallinen tieto ei ole koskaan ainoa kopio.
Pitääkö minun tietää IndexedDB:stä rakentaakseni verkkosivuston?
Ei. IndexedDB on työkalu kehittäjille, jotka rakentavat monimutkaisia verkkosovelluksia. Alustaa käyttävänä sivuston omistajana et koskaan käytä sitä suoraan. Verkkosivustorakentimesi hoitaa selaimen tallennuspäätökset taustalla. IndexedDB:n ymmärtäminen on hyödyllistä, kun haluat muodostaa kokonaiskuvan selainten toiminnasta, mutta sillä ei ole käytännön merkitystä sivustosi päivittäiselle pyörittämiselle tai hallinnalle.