Az IndexedDB a böngésző beépített tárolórendszere nagy, strukturált adatokhoz. Ismerd meg, mi ez, hogyan működik, és mikor használják a weboldalak a helyi vagy munkamenet-tároló helyett.
Használtál már olyan webalkalmazást, amely akkor is tovább működött, amikor megszakadt az internet? Vagy olyat, amely olyan gyors volt, mint a telefonodra telepített natív alkalmazás, és nagy mennyiségű adat töltődött be azonnal? Ezek mögött az élmények mögött általában valami sokkal képesebb áll, mint az eddig tárgyalt egyszerű böngészőtárolók. Ez a valami az IndexedDB.
Az IndexedDB a legképesebb elérhető böngészőtároló, és egy szinttel a helyi tároló és a munkamenet-tároló felett áll, amelyeket arra terveztek. A legtöbb vállalkozói weboldal tulajdonosa soha nem kerül vele közvetlen kapcsolatba, de ha érted, teljes képet kapsz arról, mit tudnak tárolni a böngészők.
Mi az az IndexedDB?
Az IndexedDB a böngészőbe épített alacsony szintű adatbázis. A helyi tárolóval és a munkamenet-tárolóval ellentétben, amelyek egyszerű, szöveges kulcs-érték párokat tárolnak, az IndexedDB strukturált adatokat is képes tárolni: objektumokat, tömböket, fájlokat és bináris adatokat. Kereshető, indexelhető, és sokkal több adatot tud tárolni, mint a többi böngészőtároló.
A név utal arra, hogyan működik. Indexeket használ, vagyis olyan keresőtáblákat, amelyekkel gyorsan megtalálja a tárolt rekordokat anélkül, hogy mindent végig kellene keresnie. Ez praktikussá teszi nagy mennyiségű strukturált információ tárolását és lekérését magában a böngészőben.
Miben különbözik az IndexedDB a többi böngészőtárolótól?
A helyi tároló kis szöveges értékeket tárol, és határozatlan ideig megtartja őket. A munkamenet-tároló ugyanezt teszi, de csak az aktuális lapmunkamenetre. Mindkettő egyszerű és korlátozott. Az IndexedDB alapvetően más terjedelmű és képességű.
A tárolókapacitás az egyik fő különbség. Míg a helyi tároló általában 5-10 megabájtra korlátozott, az IndexedDB a böngészőtől és az eszköztől függően több száz megabájtot vagy még többet is tárolhat. Összetett adatszerkezeteket is közvetlenül tárol, nem csak sima szöveget. És támogatja a lekérdezéseket, vagyis a weboldal kereshet a tárolt rekordok között és szűrheti őket, nem csak egy értéket kérhet le a pontos kulcsa alapján.
Mire használják a weboldalak az IndexedDB-t?
Offline működés
Azok a webalkalmazások, amelyeknek internetkapcsolat nélkül is működniük kell, az IndexedDB-t használják az adatok helyi tárolására az eszközön. Egy jegyzetelő alkalmazás, egy projektkezelő eszköz vagy egy e-mail-kliens IndexedDB-be mentheti a rekordokat, így a látogató offline is olvashat, létrehozhat és szerkeszthet tartalmat. A módosítások a kapcsolat helyreállta után szinkronizálódnak a szerverrel.
Nagy adathalmazok a böngészőben
Azok az alkalmazások, amelyek nagy mennyiségű adattal dolgoznak, például térképek, összetett szűrők vagy nagy termékkatalógusok, az IndexedDB-t használhatják az adatok helyi gyorsítótárazására. Ez csökkenti, hogy az alkalmazásnak milyen gyakran kell adatot lekérnie a szerverről, és jelentősen gyorsabbá teszi az élményt a felhasználónak.
Fájltárolás
Az IndexedDB fájlokat is tárolhat közvetlenül a böngészőben. Ez hasznossá teszi olyan alkalmazásokhoz, ahol a felhasználók olyan tartalmat töltenek fel vagy hoznak létre, amelynek a szerverre küldés előtt a munkamenetek között is elérhetőnek kell lennie.
A legtöbb weboldal használja az IndexedDB-t?
Nem. Az IndexedDB-t összetett webalkalmazások használják, nem a tipikus vállalkozói weboldalak. Egy marketingoldalnak, egy szolgáltatói weboldalnak, egy webshopnak és a legtöbb tartalomalapú oldalnak nincs rá szüksége. A tárolási igényeiket jól lefedik a sütik, a helyi tároló és a munkamenet-tároló.
A saját weboldaladnál a platform, amelyre építesz, minden tárolási döntést kezel. A WEMASY weboldalépítője minden funkcióhoz automatikusan a megfelelő tárolótípust használja. Ha egymás mellett szeretnéd látni az összes böngészőtároló-típust és azt, hogyan illeszkednek össze, olvasd el a böngészőtárolók típusairól szóló cikket.
Gyakran ismételt kérdések
Az IndexedDB igazi adatbázis?
Adatbázis abban az értelemben, hogy strukturált adatot tárol, támogatja az indexelést, és lehetővé teszi a lekérdezéseket. De nagyon különbözik a szerveroldali adatbázistól. Teljes egészében a böngészőben fut a látogató eszközén, nem távoli szerveren. Kliensoldali tárolásra készült, nem arra a megosztott, többfelhasználós adatkezelésre, amelyet a szerveradatbázisok végeznek. A WEMASY weboldalépítőjével ezt közvetlenül a weboldaladon állíthatod be.
Mennyi adatot tárolhat az IndexedDB?
Sokkal többet, mint a helyi vagy a munkamenet-tároló. A legtöbb böngésző megengedi, hogy az IndexedDB a rendelkezésre álló lemezterület jelentős részét használja, gyakran több száz megabájtot vagy többet. A böngésző engedélyt kérhet a felhasználótól, ha egy weboldal nagyon nagy mennyiséget próbál tárolni. A pontos korlát böngészőnként eltér, és attól is függhet, mennyi szabad hely van az eszközön.
Megmaradnak az IndexedDB adatai a böngésző bezárása után?
Igen. Az IndexedDB adatai alapértelmezetten tartósak, hasonlóan a helyi tárolóhoz. A böngészőben maradnak, amíg a felhasználó nem törli a böngészési adatait, vagy amíg a weboldal el nem távolítja őket. Ez a tartósság teszi az IndexedDB-t alkalmassá offline működő alkalmazásokhoz, ahol az adatnak túl kell élnie a munkamenetek közötti időt.
Biztonságos az IndexedDB?
Az IndexedDB weboldalanként elszigetelt, így egy weboldal nem fér hozzá egy másik oldal adataihoz. De mint a többi böngészőtároló, az oldalon futó szkriptek számára elérhető. Az érzékeny adatokat, például jelszavakat, fizetési adatokat és személyes információkat soha nem szabad IndexedDB-ben tárolni. Alkalmazásadatokhoz és nagy tartalomhoz jól használható, de nem helyettesítheti a biztonságos szerveroldali tárolást.
Törölhetik a látogatók az IndexedDB-adataikat?
Igen. A böngészési adatok törlése a böngészőbeállításokban a sütikkel, a helyi tárolóval és a gyorsítótárral együtt eltávolítja az IndexedDB-t is. A látogatók a fejlesztői eszközökön keresztül is törölhetik. Az olyan alkalmazásoknak, amelyek fontos adatokhoz az IndexedDB-re támaszkodnak, ezzel számolniuk kell: amikor van kapcsolat, szinkronizálják az adatot a szerverrel, hogy a helyi adat soha ne legyen az egyetlen másolat.
Kell ismernem az IndexedDB-t egy weboldal építéséhez?
Nem. Az IndexedDB egy eszköz összetett webalkalmazásokat építő fejlesztőknek. Platformot használó weboldal-tulajdonosként soha nem lépsz vele közvetlen kapcsolatba. A weboldalépítőd a háttérben kezeli a böngészőtárolási döntéseket. Az IndexedDB megértése hasznos ahhoz, hogy teljes képet kapj a böngészők működéséről, de nincs gyakorlati hatása arra, hogyan működtetsd vagy kezeld a weboldaladat a mindennapokban.