PĂ”hjalik juhend PĂŒsimĂ€lu API kohta, keskendudes salvestusruumi kvoodi haldamisele, kasutuse jĂ€lgimisele, pĂŒsimĂ€lu taotlustele ja parimatele tavadele kaasaegses veebiarenduses.
PĂŒsimĂ€lu API: Veebirakenduste Salvestusruumi Kvoodi MĂ”istmine ja Haldamine
PĂŒsimĂ€lu API (Persistent Storage API) pakub veebiarendajatele standardiseeritud viisi kasutaja brauseris salvestusruumi kvoodi taotlemiseks ja haldamiseks. Erinevalt traditsioonilistest salvestusmehhanismidest, nagu kĂŒpsised vĂ”i localStorage
, mis on sageli piiratud suurusega ja alluvad automaatsele eemaldamisele, vĂ”imaldab PĂŒsimĂ€lu API rakendustel taotleda suuremaid salvestusmahtusid ja, mis on ĂŒlioluline, taotleda salvestusruumi pĂŒsivust â see tĂ€hendab, et brauser ei tĂŒhjenda seda automaatselt isegi salvestusruumi surve all.
Miks on PĂŒsimĂ€lu Oluline
TĂ€napĂ€eva veebis, kus progressiivsed veebirakendused (PWA-d) on ĂŒha tavalisemad ja kasutajad ootavad rikkalikke, vĂ”rguĂŒhenduseta kogemusi, on usaldusvÀÀrne salvestusruum hĂ€davajalik. MĂ”elge nendele stsenaariumitele:
- VĂ”rguĂŒhenduseta JuurdepÀÀs Dokumentidele: Dokumenditöötlusrakendus (nagu Google Docs) peab dokumente lokaalselt salvestama, et kasutajad saaksid tööd jĂ€tkata ka ilma internetiĂŒhenduseta.
- Meedia Esitamine: Voogedastusteenused nagu Spotify vĂ”i Netflix vĂ”imaldavad kasutajatel sisu alla laadida vĂ”rguĂŒhenduseta esitamiseks, mis nĂ”uab mĂ€rkimisvÀÀrset salvestusruumi.
- MÀnguandmed: VeebimÀngud salvestavad sageli kasutaja edusamme, tasemeid ja varasid lokaalselt, et pakkuda sujuvat ja reageerimisvÔimelist kogemust.
- Suurte Andmekogumite VahemÀllu Salvestamine: Suurte andmekogumitega tegelevad rakendused, nagu kaardirakendused (nt Google Maps, OpenStreetMap-pÔhised rakendused), saavad kasu andmete lokaalsest vahemÀllu salvestamisest, et vÀhendada vÔrgupÀringuid ja parandada jÔudlust.
- Lokaalne Andmetöötlus: Veebirakendused, mis teostavad rasket andmetöötlust (nt pilditöötlus, videotöötlus), saavad vahetulemusi lokaalselt salvestada, et vÀltida korduvaid arvutusi.
Ilma pĂŒsimĂ€luta vĂ”ib brauser nende rakenduste kasutatava salvestusruumi automaatselt tĂŒhjendada, kui seadmes on vĂ€he ruumi, mis toob kaasa pettumust valmistava kasutajakogemuse ja potentsiaalse andmekao. PĂŒsimĂ€lu API lahendab selle probleemi, pakkudes mehhanismi, mille abil rakendused saavad taotleda pĂŒsimĂ€lu ja jĂ€lgida salvestusruumi kasutust.
Salvestusruumi Kvoodi MÔistmine
Iga brauser eraldab igale pÀritolule (domeenile) teatud hulga salvestusruumi. See salvestusruumi kvoot ei ole fikseeritud ja vÔib varieeruda sÔltuvalt sellistest teguritest nagu seadme kogu salvestusmaht, vaba ruumi hulk ja kasutaja brauseri seaded. Salvestus-API (Storage API) pakub meetodeid saadaoleva salvestuskvoodi ja juba kasutatud salvestusruumi hulga pÀrimiseks.
Salvestusruumi Kvoodi PĂ€ring
navigator.storage
liides pakub juurdepÀÀsu salvestusega seotud teabele. Meetodit estimate()
saate kasutada saadaoleva salvestuskvoodi ja teie rakenduse kasutatud salvestusruumi hinnangu saamiseks. Tagastatud objekt sisaldab omadusi usage
ja quota
, mÔlemad mÔÔdetuna baitides.
async function getStorageEstimate() {
if (navigator.storage && navigator.storage.estimate) {
const estimate = await navigator.storage.estimate();
console.log(`Usage: ${estimate.usage}`);
console.log(`Quota: ${estimate.quota}`);
console.log(`Percentage used: ${(estimate.usage / estimate.quota * 100).toFixed(2)}%`);
} else {
console.warn("Storage estimate API not supported.");
}
}
getStorageEstimate();
NĂ€ide: Oletame, et estimate.usage
tagastab 10485760
(10 MB) ja estimate.quota
tagastab 1073741824
(1 GB). See nÀitab, et teie rakendus on kasutanud 10 MB oma 1 GB kvoodist, mis on umbes 1% saadaolevast salvestusruumist.
Kvoodi VÀÀrtuste TÔlgendamine
quota
vÀÀrtus esindab maksimaalset salvestusruumi hulka, mida teie rakendus *saab* kasutada. Siiski on oluline mĂ”ista, et see kvoot ei ole garanteeritud. Brauser vĂ”ib kvooti vĂ€hendada, kui seadmes on vĂ€he salvestusruumi vĂ”i kui kasutaja tĂŒhjendab brauseri andmed. SeetĂ”ttu peaks teie rakendus olema loodud toime tulema olukordadega, kus saadaolev salvestusruum on vĂ€iksem kui teatatud kvoot.
Parim Tava: Rakendage mehhanism salvestusruumi kasutuse jÀlgimiseks ja teavitage kasutajat ennetavalt, kui rakendus lÀheneb oma salvestuslimiidile. Pakkuge kasutajale vÔimalusi ebavajalike andmete kustutamiseks vÔi oma salvestusplaani uuendamiseks (kui see on asjakohane).
PĂŒsimĂ€lu Taotlemine
Isegi kui teie rakendusel on piisav salvestuskvoot, vĂ”ib brauser siiski teie rakenduse andmed salvestusruumi surve all automaatselt tĂŒhjendada. Selle vĂ€ltimiseks saate taotleda pĂŒsimĂ€lu, kasutades meetodit navigator.storage.persist()
.
async function requestPersistentStorage() {
if (navigator.storage && navigator.storage.persist) {
const isPersistent = await navigator.storage.persist();
console.log(`Persistent storage granted: ${isPersistent}`);
if (isPersistent) {
console.log("Storage will not be cleared automatically.");
} else {
console.warn("Persistent storage not granted.");
// Provide guidance to the user on how to enable persistent storage in their browser.
}
} else {
console.warn("Persistent storage API not supported.");
}
}
requestPersistentStorage();
Meetod persist()
tagastab tĂ”evÀÀrtuse, mis nĂ€itab, kas pĂŒsimĂ€lu taotlus rahuldati. Enne pĂŒsimĂ€lu andmist vĂ”ib brauser kĂŒsida kasutajalt luba. TĂ€pne viip varieerub sĂ”ltuvalt brauserist ja kasutaja seadetest.
Kasutaja Interaktsioon ja Luba
Brauseri otsus pĂŒsimĂ€lu anda sĂ”ltub mitmest tegurist, sealhulgas:
- Kasutaja Kaasatus: Brauserid annavad tĂ”enĂ€olisemalt pĂŒsimĂ€lu rakendustele, millega kasutaja sageli tegeleb.
- Kasutaja Seaded: Kasutajad saavad oma brauseri seadeid konfigureerida, et kontrollida, kuidas pĂŒsimĂ€lu taotlusi kĂ€sitletakse. Nad vĂ”ivad valida, kas rahuldada kĂ”ik taotlused automaatselt, lĂŒkata kĂ”ik taotlused tagasi vĂ”i kĂŒsida iga taotluse kohta eraldi.
- Saadaolev Salvestusruum: Kui seadmes on kriitiliselt vĂ€he salvestusruumi, vĂ”ib brauser pĂŒsimĂ€lu taotluse tagasi lĂŒkata, olenemata kasutaja kaasatusest vĂ”i seadetest.
- PĂ€ritolu UsaldusvÀÀrsus: Turvalised kontekstid (HTTPS) on pĂŒsimĂ€lu jaoks ĂŒldiselt nĂ”utavad.
Oluline: Ărge eeldage, et pĂŒsimĂ€lu taotlus alati rahuldatakse. Teie rakendus peaks olema vastupidav olukordadele, kus salvestusruum ei ole pĂŒsiv. Rakendage strateegiaid andmete varundamiseks serverisse vĂ”i andmekao graatsiliseks kĂ€sitlemiseks.
Olemasoleva PĂŒsivuse Kontrollimine
Saate kasutada meetodit navigator.storage.persisted()
, et kontrollida, kas teie rakendusele on juba antud pĂŒsimĂ€lu.
async function checkPersistentStorage() {
if (navigator.storage && navigator.storage.persisted) {
const isPersistent = await navigator.storage.persisted();
console.log(`Persistent storage already granted: ${isPersistent}`);
} else {
console.warn("Persistent storage API not supported.");
}
}
checkPersistentStorage();
Salvestustehnoloogiad ja Kvoot
PĂŒsimĂ€lu API suhtleb erinevate brauseris saadaolevate salvestustehnoloogiatega. On ĂŒlioluline mĂ”ista, kuidas kvoot neid tehnoloogiaid mĂ”jutab.
- IndexedDB: VĂ”imas NoSQL andmebaas struktureeritud andmete kliendipoolseks salvestamiseks. IndexedDB allub salvestuskvoodi piirangutele ja saab pĂŒsimĂ€lust mĂ€rkimisvÀÀrset kasu.
- Cache API: Kasutavad teenusetöötajad (service workers) vĂ”rgupĂ€ringute vahemĂ€llu salvestamiseks, vĂ”imaldades vĂ”rguĂŒhenduseta juurdepÀÀsu ja paremat jĂ”udlust. Ka Cache API kaudu loodud vahemĂ€lud arvestatakse ĂŒldise salvestuskvoodi hulka.
- localStorage & sessionStorage: Lihtsad vĂ”tme-vÀÀrtuse hoidlad vĂ€iksemate andmemahtude jaoks. Kuigi localStorage on vaikimisi pĂŒsiv (kui kasutaja ei tĂŒhjenda brauseri andmeid), on see piiratud suurusega ja ei saa PĂŒsimĂ€lu API pakutavatest pĂŒsivuse garantiidest nii palju kasu kui IndexedDB vĂ”i Cache API. Nende kasutus arvestatakse siiski ĂŒldise kvoodi hulka.
- KĂŒpsised: Kuigi tehniliselt on tegemist salvestusmehhanismiga, kasutatakse kĂŒpsiseid tavaliselt seansihalduseks ja jĂ€lgimiseks, mitte suurte andmemahtude salvestamiseks. KĂŒpsistel on oma suurusepiirangud ja need on eraldiseisvad Salvestus-API hallatavast salvestuskvoodist.
NĂ€ide: PWA kasutab IndexedDB-d kasutajaprofiilide ja vĂ”rguĂŒhenduseta andmete salvestamiseks ning Cache API-d staatiliste varade, nagu pildid ja JavaScripti failid, vahemĂ€llu salvestamiseks. PĂŒsimĂ€lu taotlemine tagab, et see vahemĂ€llu salvestatud teave eemaldatakse vĂ€iksema tĂ”enĂ€osusega, pakkudes jĂ€rjepidevat vĂ”rguĂŒhenduseta kogemust.
Salvestusruumi Kvoodi Haldamise Parimad Tavad
TÔhus salvestusruumi kvoodi haldamine on vastupidavate ja kasutajasÔbralike veebirakenduste ehitamisel hÀdavajalik. Siin on mÔned parimad tavad, mida jÀrgida:
1. JĂ€lgige Regulaarselt Salvestusruumi Kasutust
Rakendage mehhanism oma rakenduse salvestusruumi kasutuse perioodiliseks jÀlgimiseks, kasutades navigator.storage.estimate()
. See vÔimaldab teil ennetavalt tuvastada potentsiaalseid salvestusprobleeme ja vÔtta parandusmeetmeid enne, kui need kasutajakogemust mÔjutavad.
2. Rakendage Salvestusruumi Haldamise Kasutajaliides
Pakkuge kasutajatele selget ja intuitiivset liidest oma salvestusruumi haldamiseks. See kasutajaliides peaks vÔimaldama kasutajatel:
- Vaadata oma praegust salvestusruumi kasutust.
- Tuvastada andmed, mis tarbivad kÔige rohkem salvestusruumi.
- Kustutada ebavajalikke andmeid (nt vahemÀllu salvestatud faile, allalaaditud sisu).
NĂ€ide: Fototöötlusrakendus vĂ”iks pakkuda kasutajaliidest, mis nĂ€itab kasutajatele ĂŒksikute fotode ja albumite poolt kasutatud salvestusruumi jaotust, vĂ”imaldades neil hĂ”lpsalt kustutada fotosid, mida nad enam ei vaja.
3. Optimeerige Andmete Salvestamist
Optimeerige oma rakenduse andmete salvestamist, et minimeerida selle mÀlujalajÀlge. See hÔlmab:
- Andmete tihendamist enne nende salvestamist.
- TÔhusate andmevormingute kasutamist (nt Protocol Buffers, MessagePack).
- Ăleliigsete andmete salvestamise vĂ€ltimist.
- Andmete aegumispoliitikate rakendamist vanade vÔi kasutamata andmete automaatseks kustutamiseks.
4. Rakendage Graatsilise Degradatsiooni Strateegia
Kujundage oma rakendus nii, et see kĂ€sitleks graatsiliselt olukordi, kus salvestusruum on piiratud vĂ”i pĂŒsimĂ€lu pole antud. See vĂ”ib hĂ”lmata:
- Teatud funktsioonide keelamist, mis nÔuavad mÀrkimisvÀÀrset salvestusruumi.
- Hoiatusteate kuvamist kasutajale.
- VÔimaluse pakkumist andmete varundamiseks serverisse.
5. Harige Kasutajaid PĂŒsimĂ€lu Kohta
Kui teie rakendus tugineb suuresti pĂŒsimĂ€lule, harige kasutajaid pĂŒsimĂ€lu loa andmise eeliste kohta. Selgitage, kuidas pĂŒsimĂ€lu parandab rakenduse jĂ”udlust ja tagab, et nende andmeid ei kustutata automaatselt.
6. KĂ€sitlege Salvestusvigu Graatsiliselt
Olge valmis kÀsitlema salvestusvigu, nÀiteks QuotaExceededError
, mis vĂ”ib ilmneda, kui teie rakendus ĂŒletab oma salvestuskvoodi. Pakkuge kasutajale informatiivseid veateateid ja soovitage vĂ”imalikke lahendusi (nt salvestusruumi tĂŒhjendamine, salvestusplaani uuendamine).
7. Kaaluge Teenusetöötajate Kasutamist
Teenusetöötajad (service workers) vĂ”ivad oluliselt parandada teie veebirakenduse vĂ”rguĂŒhenduseta vĂ”imekust, salvestades vahemĂ€llu staatilisi varasid ja API vastuseid. Teenusetöötajate kasutamisel olge teadlik salvestuskvoodist ja rakendage strateegiaid vahemĂ€lu tĂ”husaks haldamiseks.
Rahvusvahelistamise Kaalutlused
Oma rakenduse salvestusruumi haldamise kasutajaliidese kujundamisel arvestage jÀrgmiste rahvusvahelistamise (i18n) aspektidega:
- Numbrite Vormindamine: Kasutage salvestusruumi kasutusvÀÀrtuste kuvamisel erinevate lokaatide jaoks sobivat numbriformaati. NÀiteks mÔnes lokaadis kasutatakse komasid komakohtadena, teistes aga punkte. Kasutage JavaScripti meetodit
toLocaleString()
numbrite vormindamiseks vastavalt kasutaja lokaadile. - KuupÀeva ja Kellaaja Vormindamine: Kui teie rakendus salvestab kuupÀevi ja kellaaegu, vormindage need salvestusruumi haldamise kasutajaliideses kuvamisel vastavalt kasutaja lokaadile. Kasutage lokaadipÔhiseks kuupÀeva ja kellaaja vormindamiseks JavaScripti meetodeid
toLocaleDateString()
jatoLocaleTimeString()
. - Ăhikute Lokaliseerimine: Kaaluge salvestusĂŒhikute (nt KB, MB, GB) lokaliseerimist, et need vastaksid erinevates piirkondades kasutatavatele tavadele. Kuigi standardĂŒhikud on laialdaselt mĂ”istetavad, vĂ”ib lokaliseeritud alternatiivide pakkumine parandada kasutajakogemust.
- Teksti Suund: Veenduge, et teie salvestusruumi haldamise kasutajaliides toetaks nii vasakult-paremale (LTR) kui ka paremalt-vasakule (RTL) teksti suundi. Kasutage teksti suuna korrektseks kÀsitlemiseks CSS-i omadusi nagu
direction
jaunicode-bidi
.
Turvalisuse Kaalutlused
PĂŒsimĂ€luga tegelemisel on turvalisus esmatĂ€htis. JĂ€rgige neid turvalisuse parimaid tavasid:
- Kasutage HTTPS-i: Edastage oma rakendust alati ĂŒle HTTPS-i, et kaitsta andmeid edastamise ajal ja vĂ€ltida pealtkuulamisrĂŒnnakuid (man-in-the-middle). HTTPS on ka paljudes brauserites pĂŒsimĂ€lu nĂ”ue.
- Puhastage Kasutaja Sisend: Puhastage kogu kasutaja sisend enne selle salvestamist, et vĂ€ltida saidiĂŒlese skriptimise (XSS) haavatavusi.
- KrĂŒpteerige Tundlikud Andmed: KrĂŒpteerige tundlikud andmed enne nende lokaalset salvestamist, et kaitsta neid volitamata juurdepÀÀsu eest. Kaaluge krĂŒpteerimiseks Web Crypto API kasutamist.
- Rakendage Turvalisi AndmekÀsitlustavasid: JÀrgige turvalisi kodeerimistavasid, et vÀltida andmelekkeid ja tagada oma salvestatud andmete terviklikkus.
- Vaadake Regulaarselt Ăle ja Uuendage Oma Koodi: Hoidke end kursis viimaste turvaohtude ja haavatavustega ning vaadake oma koodi regulaarselt ĂŒle ja uuendage seda nende lahendamiseks.
NĂ€ited Erinevates Piirkondades
Vaatame, kuidas salvestusruumi kvoodi haldamine vÔib erinevates piirkondades erineda:
- Piiratud Ribalaiusega Piirkonnad: Piiratud vĂ”i kalli interneti ribalaiusega piirkondades vĂ”ivad kasutajad rohkem tugineda vĂ”rguĂŒhenduseta juurdepÀÀsule ja vahemĂ€llu salvestamisele. SeetĂ”ttu peaksid rakendused eelistama tĂ”husat salvestusruumi kasutust ja andma selgeid juhiseid vahemĂ€llu salvestatud andmete haldamiseks. NĂ€iteks mĂ”nes Aafrika vĂ”i Kagu-Aasia osas on andmesidekulud oluline murekoht.
- Andmekaitse MÀÀrustega Piirkonnad: Rangete andmekaitse mÀÀrustega piirkondades, nagu Euroopa Liit (GDPR), peavad rakendused olema lÀbipaistvad selles osas, kuidas nad salvestusruumi kasutavad, ja saama kasutajatelt selgesÔnalise nÔusoleku enne isikuandmete salvestamist. Samuti peavad nad pakkuma kasutajatele vÔimalust oma andmetele juurde pÀÀseda, neid parandada ja kustutada.
- Vanemate Seadmetega Piirkonnad: Piirkondades, kus kasutajad kasutavad tÔenÀolisemalt vanemaid vÔi vÀhem vÔimsaid seadmeid, peaksid rakendused olema eriti tÀhelepanelikud salvestusruumi kasutuse suhtes ja optimeerima oma andmete salvestamist, et minimeerida mÔju seadme jÔudlusele.
- Spetsiifiliste Keeleliste NÔuetega Piirkonnad: Salvestusruumi haldamise kasutajaliidesed peavad olema tÀielikult lokaliseeritud, arvestades numbriformaate (nt komade vÔi punktide kasutamine komakohtadena), kuupÀeva/kellaaja formaate ja Ôiget teksti suunda.
NĂ€ide: India kasutajatele suunatud uudisterakendus vĂ”ib lubada kasutajatel uudisteartikleid vĂ”rguĂŒhenduseta lugemiseks alla laadida, tunnistades potentsiaalset katkendlikku internetiĂŒhendust. Rakendus pakuks ka selget salvestusruumi haldamise kasutajaliidest mitmes India keeles, vĂ”imaldades kasutajatel ruumi vabastamiseks hĂ”lpsalt allalaaditud artikleid kustutada.
Salvestus-API-de Tulevik
PĂŒsimĂ€lu API areneb pidevalt ning lisatakse uusi funktsioone ja vĂ”imalusi, et vastata kaasaegsete veebirakenduste kasvavatele nĂ”udmistele. MĂ”ned potentsiaalsed tulevikuarengud hĂ”lmavad:
- Parem Salvestusruumi Kvoodi Haldamine: TĂ€psem kontroll salvestuskvoodi ĂŒle, vĂ”imaldades rakendustel eraldada konkreetseid salvestusmahtusid erinevat tĂŒĂŒpi andmetele.
- Integratsioon Pilvesalvestusega: Sujuv integratsioon pilvesalvestusteenustega, mis vÔimaldab rakendustel andmeid lÀbipaistvalt pilve salvestada, kui lokaalne salvestusruum on piiratud.
- TĂ€iustatud Andmete SĂŒnkroniseerimine: Keerukamad andmete sĂŒnkroniseerimismehhanismid, mis vĂ”imaldavad rakendustel andmeid tĂ”husalt sĂŒnkroniseerida lokaalse salvestusruumi ja pilve vahel.
- Standardiseeritud Salvestusruumi KrĂŒpteerimine: Standardiseeritud API lokaalsesse salvestusruumi salvestatud andmete krĂŒpteerimiseks, lihtsustades tundlike andmete turvamise protsessi.
KokkuvÔte
PĂŒsimĂ€lu API on vĂ”imas tööriist veebiarendajatele, kes soovivad ehitada vastupidavaid ja kasutajasĂ”bralikke veebirakendusi, mis suudavad pakkuda rikkalikke vĂ”rguĂŒhenduseta kogemusi. MĂ”istes salvestusruumi kvoodi haldamist, taotledes pĂŒsimĂ€lu ning jĂ€rgides andmete salvestamise ja turvalisuse parimaid tavasid, saate luua rakendusi, mis on usaldusvÀÀrsed, jĂ”udluspĂ”hised ja austavad kasutajate privaatsust. Veebi jĂ€tkuva arengu kĂ€igus mĂ€ngib PĂŒsimĂ€lu API ĂŒha olulisemat rolli jĂ€rgmise pĂ”lvkonna veebirakenduste vĂ”imaldamisel.