Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3591|Atsakyti: 1

[Kita] Front-end saugo IndexedDB localForage paketą

[Kopijuoti nuorodą]
Paskelbta 2023-10-12 20:42:27 | | | |
Įprasti duomenų saugojimo sprendimai daugiausia apima:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storageir kt., pavyzdžiui:

savybėSlapukasvietinė saugyklasesijaSaugyklaindexedDB
Duomenų gyvavimo ciklasPaprastai sugeneruojamas serverio, galiojimo laiką galima nustatyti; Taip pat galima generuoti tokius komponentus kaip front-end priėmimas ir js-cookieJei neišvalyta, ji visada yra; Kai naršyklė uždaroma, ji taip pat išsaugoma vietoje, tačiau kelių naršyklių nepalaikomaPuslapio valymas ir atnaujinimas vis tiek bus, kai puslapis bus uždarytas, o sąveika keliuose puslapiuose nepalaikomaJei nebuvo išvalyta, ji visada egzistavo
Duomenų saugyklos dydis4K5 mln.5 mln.Nėra dydžio apribojimų
Bendrauti su serveriuJis kiekvieną kartą pateikiamas prašomoje antraštėje, o tai turi įtakos užklausos veikimui; Tuo pačiu metu, kadangi jis yra įtrauktas į užklausą, jis taip pat gali kilti saugumo problemųNedalyvaujaNedalyvaujaNedalyvauja
ypatumasEilutės rakto ir reikšmės poros saugo duomenis vietojeEilutės rakto ir reikšmės poros saugo duomenis vietojeEilutės rakto ir reikšmės poros saugo duomenis vietojeIndexedDB yra nereliacinė duomenų bazė (operacijos per SQL sakinius nepalaikomos). Jis gali saugoti didelius duomenų kiekius, teikti sąsajas užklausoms ir kurti indeksus, kurių negali pateikti kiti saugojimo sprendimai.

Indeksuotas DB

Šiame straipsnyje daugiausia aprašomas "IndexedDB" naudojimas išorinei saugyklai ir pristatomas taip:

IndexedDB yra pagrindinė API, skirta saugoti didelius struktūrizuotų duomenų kiekius (taip pat failus / dvejetainius didelius objektus (blobs)) kliento pusėje. API naudoja indeksus, kad įgalintų didelio našumo duomenų paiešką. Nors žiniatinklio saugykla yra naudinga saugoti mažesnius duomenų kiekius, ji nėra tokia gera, kaip saugoti didesnius struktūrizuotų duomenų kiekius. IndexedDB pateikia sprendimą šiam scenarijui. Šis puslapis yra pagrindinis MDN IndexedDB vadovo puslapis - čia pateikiame išsamią API nuorodą ir naudojimo vadovą, naršyklės palaikymo informaciją ir nuorodas į kai kuriuos pagrindinių sąvokų paaiškinimus.

IndexedDB turi šias funkcijas:

(1) Rakto ir reikšmės poros saugykla. IndexedDB naudoja objektų saugyklą duomenims saugoti. Visų tipų duomenys gali būti deponuojami tiesiogiai, įskaitant JavaScript objektus. Objektų saugykloje duomenys saugomi "rakto ir reikšmės porų" pavidalu, o kiekvienas duomenų įrašas turi atitinkamą pirminį raktą, kuris yra unikalus ir negali būti dubliuojamas, kitaip bus išmesta klaida.

(2) Asinchroninis. "IndexedDB" neužrakina naršyklės ir vartotojas vis tiek gali atlikti kitas operacijas, priešingai nei "LocalStorage", kuri veikia sinchroniškai. Asinchroninis dizainas neleidžia skaityti ir rašyti didelių duomenų kiekių, sulėtinant tinklalapių veikimą.

(3) Pagalbiniai reikalai. "IndexedDB" palaiko operacijas, o tai reiškia, kad jei vienas iš operacijos veiksmų nepavyks, visa operacija bus atšaukta, o duomenų bazė bus grąžinta į būseną, buvusią prieš įvykstant operacijai, ir nėra atvejo perrašyti tik dalį duomenų.

(4) Homologijos apribojimas. "IndexedDB" taikoma ta pati kilmės riba, o kiekviena duomenų bazė atitinka ją sukūrusį domeno vardą. Tinklalapiai gali pasiekti duomenų bazes tik savo domenų vardais, o ne kryžminių domenų duomenų bazėmis.

(5) Didelė saugojimo vieta. "IndexedDB" turi daug didesnę saugyklos vietą nei "LocalStorage", paprastai ne mažiau kaip 250 MB, ir viršutinės ribos nėra.

(6) Palaikykite dvejetainę saugyklą. IndexedDB gali saugoti ne tik eilutes, bet ir dvejetainius duomenis (ArrayBuffer objektus ir Blob objektus).


Jei sunku pradėti tiesiogiai su "IndexedDB" ir jums reikia jį įtraukti patiems, galite naudoti kai kuriuos supakuotus paketus taip:


  • localForage: paprastas "Polyfill", pateikiantis paprastą kliento duomenų saugyklų reikšmių sintaksę. Jis naudoja "IndexedDB" fone ir grįžta į "WebSQL" arba "localStorage" naršyklėse, kurios nepalaiko "IndexedDB".
  • Dexie.js: "IndexedDB" įvyniojimai leidžia greičiau kurti kodą naudojant paprastą sintaksę.
  • ZangoDB: IndexedDB sąsaja, panaši į MongoDB, palaikanti daugumą MongoDB pažįstamų filtravimo, projekcijos, rūšiavimo, atnaujinimo ir agregavimo funkcijų.
  • JsStore: IndexedDB apvalkalas su SQL sintaksė.
  • MiniMongo: MongoDB kliento atmintyje, palaikoma vietinės saugyklos, serverio sinchronizavimas per http. MeteorJS naudoja MiniMongo.
  • PouchDB: klientas, kuris įdiegia CouchDB naršyklėje naudodamas IndexedDB.
  • idb: mažytė (〜1.15k) biblioteka, kurios didžioji dalis API panaši į IndexedDB, tačiau su keliais nedideliais patobulinimais, kurie labai pagerina duomenų bazės naudojimą.
  • idb-keyval: Itin paprasta ir maža (~600B) pažadu pagrįsta raktų ir reikšmių porų saugykla, įdiegta su IndexedDB.
  • sifrr-storage: Labai maža (~2kB) pažadu pagrįsta kliento pusės rakto-reikšmės duomenų bazė. Įdiegta remiantis "IndexedDB", "localStorage", "WebSQL" ir slapukais. Jis gali automatiškai pasirinkti aukščiau paminėtas palaikomas duomenų bazes ir naudoti jas prioriteto tvarka.
  • lovefield: "Lovefield" yra reliacinė žiniatinklio programų duomenų bazė, parašyta "JavaScript", gali veikti įvairiose naršyklės aplinkose ir suteikia į SQL panašią API, kuri yra greita, saugi ir paprasta naudoti.

vietinisPašaras

localForage yra greita ir paprasta JavaScript saugykla. localForage pagerina žiniatinklio programų patirtį neprisijungus naudodama asinchroninę saugyklą (IndexedDB arba WebSQL) ir paprastą API, panašią į localStorage. localForage naudoja localStorage naršyklėse, kurios neturi IndexedDB arba WebSQL palaikymo.

"GitHub" adresas:Hipersaito prisijungimas matomas.
Kinų pamoka:Hipersaito prisijungimas matomas.

localForage pateikia du skirtingus js failus, skirtumai yra šie:

localforage.js: pažadų biblioteka, kurioje yra melo įgyvendinimas (Hipersaito prisijungimas matomas.), failas yra palyginti didelis, o pažado sintaksę galima naudoti senesnėse naršyklėse.
localforage.nopromises.js: "Promise" neįdiegta, palaikomos tik naujos naršyklių versijos.

Bandymo kodas:



(Pabaiga)




Ankstesnis:ASP.NET Core (dvidešimt penkios) priklausomybės injekcija Lazy tingus tingus inicijavimas
Kitą:Rezervuokite IPv4 privataus tinklo IP adreso CIDR bloką
 Savininkas| Paskelbta 2025-03-02 19:12:18 |
Itin paprasta pažadu pagrįsta keyval saugykla, įdiegta lengvo IndexedDB:https://github.com/jakearchibald/idb-keyval
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com