Levinumad esipaneeli andmesalvestuslahendused on peamiselt järgmised:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storagejne, näiteks:
| tunnus | küpsis | localStorage | sessionStorage | indexedDB | | Andmete elutsükkel | Tavaliselt genereerib server ning aegumisaeg on seatud; Komponente nagu front-end kasutuselevõtt ja js-cookie saab samuti genereerida | Kui seda ei puhastata, on see alati olemas; Kui brauser on suletud, salvestatakse see ka lokaalselt, kuid brauseritevaheline süsteem ei ole toetatud | Lehe puhastamine ja värskendamine jääb alles, kui leht on suletud, ning ristlehe interaktsioon ei ole toetatud | Kui pole puhastatud, on see alati olemas olnud | | Andmesalvestuse suurus | 4K | 5M | 5M | Suuruspiirangut ei ole | | Suhtle serveriga | See kannab iga kord soovitud päises, mis mõjutab päringu tulemuslikkust; Samas, kuna see on päringusse lisatud, on see ka turvaprobleemide suhtes vastuvõtlik | Mitte osalemine | Mitte osalemine | Mitte osalemine | | Omapära | Stringi võtme-väärtuse paarid salvestavad andmeid lokaalselt | Stringi võtme-väärtuse paarid salvestavad andmeid lokaalselt | Stringi võtme-väärtuse paarid salvestavad andmeid lokaalselt | IndexedDB on mitte-relatsiooniline andmebaas (SQL-lausete kaudu tehtud toimingud ei ole toetatud). See suudab salvestada suuri andmemahtu, pakkuda päringuliideseid ja luua indekseid, mida teised salvestuslahendused ei suuda pakkuda. |
IndexedDB
See artikkel kirjeldab peamiselt IndexedDB kasutamist esiosa salvestuseks ning tutvustatakse järgmiselt:
IndexedDB on aluseks olev API, mis võimaldab kliendipoolsel poolel salvestada suuri hulka struktureeritud andmeid (ka faili/binaarseid suuri objekte (blobsid)). API kasutab indekseid, et võimaldada andmete kõrge jõudlusega otsinguid. Kuigi veebisalvestus on kasulik väiksemate andmemahtude salvestamiseks, ei ole see nii hea kui suuremate struktureeritud andmete salvestamine. IndexedDB pakub sellele olukorrale lahendust. See leht on MDN IndexedDB peamine juhendi leht – siin pakume täielikku API viite ja kasutusjuhendit, brauseri toe üksikasju ning viiteid mõnele võtmekontseptsiooni selgitusele. IndexedDB-l on järgmised funktsioonid:
(1) Võtme-väärtuse paari salvestamine. IndexedDB kasutab andmete salvestamiseks objektide salvestust. Kõiki andmetüüpe saab otse deponeerida, sealhulgas JavaScripti objektid. Objektide hoidlas salvestatakse andmed "võtme-väärtuse paaridena" ning igal andmekirjel on vastav esmane võti, mis on unikaalne ja mida ei saa dubleerida, vastasel juhul tekib viga.
(2) Asünkroonne. IndexedDB ei lukusta brauserit ja kasutaja saab siiski teha muid toiminguid, erinevalt LocalStorage'ist, mis töötab sünkroonselt. Asünkroonne disain on mõeldud selleks, et takistada suurte andmemahtude lugemist ja kirjutamist, aeglustades veebilehtede jõudlust.
(3) Toetusasjad. IndexedDB toetab tehinguid, mis tähendab, et kui mõni operatsioonisamm ebaõnnestub, tühistatakse kogu tehing ning andmebaas viiakse tagasi tehingu eelnevale olekule ning ei ole juhtumit, kus ainult osa andmetest ümber kirjutatakse.
(4) Homoloogia piirang. IndexedDB-l on sama päritolupiirang ning iga andmebaas vastab domeeninimele, mis selle lõi. Veebilehed pääsevad andmebaasidele ligi ainult oma domeeninimede all, mitte domeenideüleseid andmebaase.
(5) Suur hoiuruum. IndexedDB-l on palju suurem salvestusruum kui LocalStorage'il, tavaliselt mitte vähem kui 250MB, ning ülemist piiri ei ole.
(6) Binaarsalvestuse tugi. IndexedDB suudab salvestada mitte ainult stringe, vaid ka binaarandmeid (ArrayBuffer objektid ja Blob objektid).
Kui IndexedDB-ga otse alustamine on keeruline ja pead selle ise kapseldama, võid kasutada mõningaid pakendatud pakette järgmiselt:
- localForage: Lihtne Polyfill, mis pakub lihtsat väärtussüntaksit kliendipoolsetele andmesalvestustele. See kasutab taustal IndexedDB-d ja pöördub tagasi WebSQL-i või localStorage'i peale brauserites, mis IndexedDB-d ei toeta.
- Dexie.js: IndexedDB ümbrised võimaldavad lihtsa süntaksi abil kiiremat koodiarendust.
- ZangoDB: IndexedDB liides, mis sarnaneb MongoDB-le, toetades enamikku MongoDB tuttavaid filtreerimis-, projektsiooni-, sorteerimis-, uuendamis- ja agregeerimisfunktsioone.
- JsStore: IndexedDB wrapper SQL süntaksiga.
- MiniMongo: MongoDB kliendimälus, mida toetab kohalik salvestus, serveri sünkroniseerimine http kaudu. MeteorJS kasutab MiniMongot.
- PouchDB: Klient, mis rakendab CouchDB brauseris, kasutades IndexedDB-d.
- idb: Väike (〜1.15k) teek, kus enamik API-st on sarnane IndexedDB-le, kuid mõningate väikeste täiustustega, mis oluliselt parandavad andmebaasi kasutusmugavust.
- idb-keyval: Väga lihtne ja väike (~600B) lubaduspõhine võtme-väärtuse paari salvestus, mis on rakendatud IndexedDB-ga.
- sifrr-storage: Väga väike (~2kB) promise-põhine kliendipoolne võtme-väärtuse andmebaas. Teostatud IndexedDB, localStorage, WebSQL ja küpsiste alusel. See saab automaatselt valida ülalmainitud toetatud andmebaasid ja kasutada neid prioriteedi järjekorras.
- lovefield: Lovefield on relatsiooniline andmebaas veebirakendustele, kirjutatud JavaScriptis, saab töötada erinevates brauserikeskkondades ning pakub SQL-laadset API-d, mis on kiire, turvaline ja lihtne kasutada.
localForage
localForage on kiire ja lihtne JavaScripti hoidla. localForage parandab veebirakenduste võrguühenduseta kogemust, kasutades asünkroonset salvestust (IndexedDB või WebSQL) ja lihtsat API-d, mis sarnaneb localStorage'ile. localForage kasutab localStorage'i brauserites, kus puudub IndexedDB või WebSQL tugi.
GitHubi aadress:Hüperlingi sisselogimine on nähtav. Hiina keele õpetus:Hüperlingi sisselogimine on nähtav.
localForage pakub kahte erinevat js-faili, erinevused on järgmised:
localforage.js: Promise raamatukogu, mis sisaldab lie rakendust (Hüperlingi sisselogimine on nähtav.), fail on suhteliselt suur ning lubaduse süntaksit saab kasutada vanemates brauserites.
localforage.nopromises.js: Promise'i implementeerimist ei ole, toetatakse ainult uusi brauseri versioone.
Testkood:
(Lõpp)
|