Izpētiet Origin Private File System (OPFS) un tās lomu, nodrošinot spēcīgu, izolētu krātuvi tīmekļa lietojumprogrammām, uzlabojot veiktspēju un lietotāju pieredzi visā pasaulē.
Origin Private File System: Izolētas krātuves pārvaldība globālām lietojumprogrammām
Pastāvīgi mainīgajā tīmekļa izstrādes ainavā ir ļoti svarīgi nodrošināt netraucētu un efektīvu lietotāju pieredzi. Globālām lietojumprogrammām tas bieži ietver efektīvu datu pārvaldību klienta pusē. Origin Private File System (OPFS) parādās kā spēcīgs rīks, piedāvājot izstrādātājiem robustu, izolētu un veiktspējīgu veidu, kā glabāt datus tieši lietotāja pārlūkprogrammā. Šis visaptverošais ceļvedis iedziļinās OPFS sarežģītībā, tās priekšrocībās starptautiskai izstrādei un kā to izmantot uzlabotām tīmekļa lietojumprogrammām.
Izpratne par izolētu krātuvi tīmekļa ekosistēmā
Pirms iedziļināties OPFS, ir svarīgi saprast izolētas krātuves jēdzienu tīmekļa lietojumprogrammu kontekstā. Tīmekļa pārlūkprogrammas pēc savas būtības darbojas saskaņā ar stingru drošības modeli. Viens no šī modeļa pamatprincipiem ir uz izcelsmi balstīta izolācija. Tas nozīmē, ka dati, ko ģenerē vietne no konkrētas izcelsmes (protokols, domēns un ports), parasti tiek turēti atsevišķi no datiem, ko ģenerē citas izcelsmes vietas. Šī izolācija neļauj ļaunprātīgām vietnēm piekļūt vai traucēt jūsu sensitīvajai informācijai no citām uzticamām vietnēm.
Vēsturiski tīmekļa krātuves mehānismi, piemēram, Local Storage un Session Storage, ir nodrošinājuši vienkāršu atslēgas-vērtības pāru krātuvi. Lai gan tie ir ērti nelielam datu apjomam, tiem ir ierobežojumi attiecībā uz krātuves ietilpību un spēju efektīvi apstrādāt strukturētus vai binārus datus. Savukārt IndexedDB piedāvā jaudīgāku, transakcionālu datubāzei līdzīgu krātuvi ievērojamam strukturētu datu apjomam, ieskaitot bināros blokus. Tomēr pat IndexedDB ir savi apsvērumi attiecībā uz veiktspēju un izstrādātāju ergonomiku noteiktos lietošanas gadījumos.
Nepieciešamība pēc veiktspējīgāka un elastīgāka failu sistēmai līdzīga krātuves risinājuma tieši pārlūkprogrammā noveda pie tādu API izstrādes kā File System Access API un, konkrētāk, pie izcelsmei piesaistītiem datiem – Origin Private File System.
Kas ir Origin Private File System (OPFS)?
Origin Private File System (OPFS) ir File System Access API evolūcija, kas īpaši izstrādāta, lai nodrošinātu izcelsmei privātu krātuvi. Tas nozīmē, ka faili un direktorijas, kas izveidotas OPFS ietvaros, ir pieejamas tikai tai izcelsmei, kas tās izveidoja. Atšķirībā no plašākās File System Access API, kas var aicināt lietotājus izvēlēties direktorijas savā ierīcē, OPFS darbojas pilnībā pārlūkprogrammas izolētajā (sandboxed) krātuvē, ko pārvalda pārlūkprogrammas piegādātājs.
OPFS piedāvā pazīstamu failu sistēmas saskarni, ļaujot izstrādātājiem programmatiski izveidot, lasīt, rakstīt un pārvaldīt failus un direktorijas. Tā ir veidota uz IndexedDB bāzes, bet tā atklāj tiešāku, failiem līdzīgu API, kas var būt ievērojami veiktspējīgāka noteiktām operācijām, īpaši strādājot ar lieliem bināriem datiem vai sarežģītām failu struktūrām.
Galvenās OPFS īpašības:
- Izcelsmei privāta: Dati ir izolēti konkrētai izcelsmei, kas tos izveidojusi, nodrošinot privātumu un drošību.
- Failu sistēmai līdzīga API: Nodrošina strukturētu veidu, kā pārvaldīt failus un direktorijas, līdzīgi tradicionālai failu sistēmai.
- Augsta veiktspēja: Optimizēta ātrām lasīšanas un rakstīšanas operācijām, īpaši bināriem datiem.
- Pārlūkprogrammas pārvaldīta: Pārlūkprogramma nodrošina pamatā esošās krātuves un OPFS datu pārvaldību.
- Bez lietotāja uzvednēm: Atšķirībā no dažām File System Access API daļām, OPFS neprasa lietotāja mijiedarbību, lai piešķirtu piekļuvi failiem, jo tā jau ir izcelsmes kompetencē.
OPFS spēks: priekšrocības globālām tīmekļa lietojumprogrammām
Tīmekļa lietojumprogrammām ar globālu lietotāju bāzi OPFS piedāvā vairākas pārliecinošas priekšrocības:
1. Uzlabota veiktspēja un atsaucība
Daudzām globālām lietojumprogrammām, piemēram, sadarbības rediģēšanas rīkiem, bezsaistes produktivitātes komplektiem vai satura ietilpīgām platformām, nepieciešama efektīva lielu datu kopu apstrāde. OPFS tiešā piekļuve failu sistēmai, apejot dažas ar IndexedDB objektu krātuves modeli saistītās pieskaitāmās izmaksas noteiktām operācijām, var novest pie ievērojamiem veiktspējas ieguvumiem.
Piemērs: Iedomājieties globālu fotoattēlu rediģēšanas lietojumprogrammu. Lietotāji varētu augšupielādēt simtiem augstas izšķirtspējas attēlu. Tā vietā, lai glabātu tos kā blokus IndexedDB, kas var ietvert serializāciju un deserializāciju, OPFS ļauj tieši manipulēt ar failiem. Tas var krasi samazināt laiku, kas nepieciešams attēlu ielādei, apstrādei un saglabāšanai, nodrošinot ātrāku un atsaucīgāku lietotāja pieredzi neatkarīgi no lietotāja ģeogrāfiskās atrašanās vietas vai tīkla apstākļiem.
2. Bezsaistes iespējas un datu pastāvība
Progresīvās tīmekļa lietotnes (PWA) kļūst arvien svarīgākas globālai sasniedzamībai, nodrošinot funkcionalitāti pat ar pārtrauktu tīkla savienojumu. OPFS ir revolucionārs rīks robustu, bezsaistē strādājošu PWA izveidei.
Piemērs: Globālai e-mācību platformai varētu būt nepieciešams ļaut studentiem lejupielādēt kursu materiālus, video un interaktīvus vingrinājumus bezsaistes studijām. OPFS var izmantot, lai organizētu šos lejupielādētos resursus strukturētā veidā pārlūkprogrammā. Kad lietotājs ir bezsaistē, lietojumprogramma var netraucēti piekļūt šiem failiem no OPFS un tos pasniegt, nodrošinot nepārtrauktu mācību procesu. Tas ir ļoti svarīgi reģionos ar neuzticamu interneta infrastruktūru.
3. Efektīva lielu bināro datu apstrāde
Lai gan IndexedDB var glabāt binārus datus (piemēram, attēlus, audio vai video) kā `Blob` vai `ArrayBuffer` objektus, OPFS nodrošina tiešāku un bieži vien veiktspējīgāku veidu, kā strādāt ar šāda veida failiem.
Piemērs: Tīmekļa mūzikas producēšanas rīkam, ko izmanto mūziķi visā pasaulē, varētu būt nepieciešams apstrādāt lielas audio paraugu bibliotēkas. OPFS ļauj šīs bibliotēkas glabāt un piekļūt tām kā atsevišķiem failiem. Konkrēta instrumenta parauga ielāde kļūst par tiešu faila lasīšanas operāciju, kas var būt daudz ātrāka nekā liela bloka ielāde un apstrāde no IndexedDB. Šī efektivitāte ir kritiska reāllaika audio apstrādei.
4. Uzlabota izstrādātāju ergonomika failu operācijām
Izstrādātājiem, kas ir pazīstami ar tradicionālajām failu sistēmas operācijām, OPFS nodrošina intuitīvāku programmēšanas modeli.
Piemērs: Veidojot tīmekļa dokumentu redaktoru, kuram jāpārvalda dažādas dokumentu versijas, metadatu faili un, iespējams, iegulti resursi, OPFS piedāvā skaidru direktoriju un failu struktūru. Jaunu dokumentu versiju izveide ietver jaunu failu un direktoriju izveidi, satura rakstīšanu un metadatu atjaunināšanu, kas tieši atbilst parastajām failu sistēmas operācijām. Tas samazina mentālo slodzi, salīdzinot ar sarežģītu objektu struktūru pārvaldību IndexedDB līdzīgiem uzdevumiem.
5. Uzlabots privātums un drošība
OPFS raksturīgā izcelsmei privātā daba ir nozīmīga drošības priekšrocība. Datiem, kas glabājas OPFS, nevar piekļūt citas vietnes, pat ja tās darbojas uz tā paša lietotāja datora. Tas ir fundamentāli svarīgi lietotāju datu aizsardzībai globālā tiešsaistes vidē, kur lietotāji bieži pārslēdzas starp dažādām vietnēm.
Piemērs: Finanšu pārvaldības lietojumprogrammai, ko izmanto indivīdi dažādās valstīs, ir nepieciešams droši glabāt sensitīvus darījumu datus. Izmantojot OPFS, šie sensitīvie dati ir stingri ierobežoti ar lietojumprogrammas izcelsmi, pasargāti no potenciāliem starpvietņu skriptēšanas (XSS) uzbrukumiem, kas varētu mēģināt piekļūt datiem no citām izcelsmēm.
OPFS pamatkoncepcijas un API
OPFS API galvenokārt piekļūst, izmantojot window.showDirectoryPicker()
vai tieši piekļūstot izcelsmei privātajai direktorijai, izmantojot navigator.storage.getDirectory()
. Pēdējā ir vēlamā metode patiesai izcelsmei privātai krātuvei bez lietotāja uzvednēm.
Galvenais OPFS ieejas punkts ir saknes direktorija (Root Directory), kas pārstāv izcelsmes privāto failu krātuves apgabalu. No šīs saknes jūs varat izveidot un pārvietoties pa direktorijām un mijiedarboties ar failiem.
Piekļuve izcelsmes privātajai direktorijai
Tiešākais veids, kā sākt darbu ar OPFS, ir izmantot navigator.storage.getDirectory()
:
async function getOpfsRoot() {
if (
'launchQueue' in window &&
'files' in window.launchQueue &&
'supported' in window.launchQueue.files &&
window.launchQueue.files.supported
) {
// Handle files launched from the OS (e.g., PWA files on Windows)
// This part is more advanced and relates to file launching, not direct OPFS root.
// For OPFS, we typically want the root directory directly.
}
// Check for browser support
if (!('storage' in navigator && 'getDirectory' in navigator.storage)) {
console.error('OPFS not supported in this browser.');
return null;
}
try {
const root = await navigator.storage.getDirectory();
console.log('Successfully obtained OPFS root directory:', root);
return root;
} catch (err) {
console.error('Error getting OPFS root directory:', err);
return null;
}
}
getOpfsRoot();
getDirectory()
metode atgriež FileSystemDirectoryHandle, kas ir primārā saskarne mijiedarbībai ar direktorijām. Līdzīgi, getFileHandle()
uz direktorijas roktura atgriež FileSystemFileHandle atsevišķiem failiem.
Darbs ar failiem un direktorijām
Kad jums ir direktorijas rokturis, varat veikt dažādas operācijas:
Direktoriju izveide
Izmantojiet getDirectoryHandle()
metodi uz direktorijas roktura, lai izveidotu vai iegūtu esošu apakšdirektoriju.
async function createSubdirectory(parentDirectoryHandle, dirName) {
try {
const subDirHandle = await parentDirectoryHandle.getDirectoryHandle(dirName, { create: true });
console.log(`Directory '${dirName}' created or accessed:`, subDirHandle);
return subDirHandle;
} catch (err) {
console.error(`Error creating/accessing directory '${dirName}':`, err);
return null;
}
}
// Example usage:
// const root = await getOpfsRoot();
// if (root) {
// const dataDir = await createSubdirectory(root, 'userData');
// }
Failu izveide un rakstīšana tajos
Izmantojiet getFileHandle()
, lai iegūtu faila rokturi, un pēc tam createWritable()
, lai iegūtu rakstāmu straumi datu rakstīšanai.
async function writeToFile(directoryHandle, fileName, content) {
try {
const fileHandle = await directoryHandle.getFileHandle(fileName, { create: true });
const writable = await fileHandle.createWritable();
await writable.write(content);
await writable.close();
console.log(`Successfully wrote to '${fileName}':`, content);
} catch (err) {
console.error(`Error writing to file '${fileName}':`, err);
}
}
// Example usage:
// if (dataDir) {
// const userData = JSON.stringify({ userId: 123, name: 'Alice' });
// await writeToFile(dataDir, 'profile.json', userData);
// }
Lasīšana no failiem
Izmantojiet getFileHandle()
un pēc tam getFile()
, lai iegūtu File
objektu, ko pēc tam var nolasīt.
async function readFile(directoryHandle, fileName) {
try {
const fileHandle = await directoryHandle.getFileHandle(fileName);
const file = await fileHandle.getFile();
const content = await file.text(); // Or file.arrayBuffer() for binary data
console.log(`Content of '${fileName}':`, content);
return content;
} catch (err) {
console.error(`Error reading file '${fileName}':`, err);
return null;
}
}
// Example usage:
// if (dataDir) {
// const profileData = await readFile(dataDir, 'profile.json');
// }
Direktorijas satura uzskaitīšana
Izmantojiet values()
iteratoru uz direktorijas roktura, lai uzskaitītu tās saturu.
async function listDirectory(directoryHandle) {
const entries = [];
for await (const entry of directoryHandle.values()) {
entries.push(entry.kind + ': ' + entry.name);
}
console.log(`Contents of directory '${directoryHandle.name}':`, entries);
return entries;
}
// Example usage:
// if (dataDir) {
// await listDirectory(dataDir);
// }
OPFS izmantošana ar WebAssembly (Wasm)
Viens no spēcīgākajiem OPFS lietošanas gadījumiem ir tā integrācija ar WebAssembly (Wasm). Wasm ļauj jums palaist kodu, kas kompilēts no tādām valodām kā C, C++ vai Rust, tieši pārlūkprogrammā ar gandrīz dabisku ātrumu. Lietojumprogrammām, kas prasa intensīvu datu apstrādi vai sarežģītus aprēķinus, OPFS var kalpot kā augstas veiktspējas krātuves aizmugursistēma Wasm moduļiem.
File System Access API, ieskaitot OPFS, nodrošina mehānismus Wasm moduļiem, lai piekļūtu pārlūkprogrammas failu sistēmai, izmantojot īpašas saistnes vai bibliotēkas. Tas ļauj īstenot tādus scenārijus kā:
- Pilnvērtīgas darbvirsmas klases lietojumprogrammas, piemēram, video redaktora vai CAD programmatūras, darbināšana pilnībā pārlūkprogrammā, izmantojot OPFS projektu failu un resursu glabāšanai.
- Augstas veiktspējas datu analīzes vai zinātnisko aprēķinu uzdevumu īstenošana ar lielām datu kopām, kas glabājas OPFS.
- Esošo Wasm kompilēto bibliotēku izmantošana failu manipulācijai vai datubāzes operācijām, ko tagad nodrošina OPFS.
Piemērs: Apsveriet globālu zinātnisko simulāciju platformu. Pētnieki var augšupielādēt lielus simulācijas datu failus. Wasm modulis, kas kompilēts no Fortran vai C, var pēc tam nolasīt šos failus tieši no OPFS, veikt sarežģītus aprēķinus un ierakstīt rezultātus atpakaļ OPFS. Tas dramatiski uzlabo apstrādes ātrumu, salīdzinot ar JavaScript bāzētiem risinājumiem, un nodrošina, ka dati tiek pārvaldīti efektīvi un privāti lietotāja pārlūkprogrammas sesijas ietvaros.
Praktiski apsvērumi globālai ieviešanai
Lai gan OPFS piedāvā milzīgu jaudu, veiksmīgai globālai ieviešanai ir jāņem vērā vairāki faktori:
1. Pārlūkprogrammu atbalsts un funkcionalitātes noteikšana
OPFS ir salīdzinoši moderna API. Lai gan atbalsts pieaug, ir svarīgi ieviest robustu funkcionalitātes noteikšanu, lai nodrošinātu, ka jūsu lietojumprogramma graciozi degradējas vai piedāvā alternatīvus risinājumus pārlūkprogrammās, kas to neatbalsta.
Praktisks ieteikums: Vienmēr pārbaudiet navigator.storage.getDirectory
esamību, pirms mēģināt izmantot OPFS. Nodrošiniet skaidrus rezerves mehānismus, iespējams, izmantojot IndexedDB vai pat vienkāršāku krātuvi nekritiskiem datiem, ja OPFS nav pieejama.
2. Krātuves kvotas un lietotāju pārvaldība
Pārlūkprogrammas nosaka krātuves kvotas vietnēm. Lai gan OPFS ir paredzēta lielākām krātuves vajadzībām, tā nav neierobežota. Precīzas kvotas var atšķirties atkarībā no pārlūkprogrammas un operētājsistēmas. Lietotāji var arī pārvaldīt krātuves atļaujas un dzēst vietnes datus.
Praktisks ieteikums: Ieviesiet mehānismus, lai informētu lietotājus par krātuves izmantošanu. Apsveriet iespēju nodrošināt lietotājiem opcijas kešoto datu dzēšanai vai savu lietojumprogrammā glabāto failu pārvaldībai. Regulāri pārbaudiet pieejamo krātuves vietu, pirms mēģināt rakstīt lielu datu apjomu.
3. Sinhronizācija un mākoņpakalpojumu integrācija
OPFS nodrošina lokālu klienta puses krātuvi. Globālām lietojumprogrammām, kur lietotāji var piekļūt datiem no vairākām ierīcēm vai nepieciešama dublēšana, jums būs nepieciešama stratēģija datu sinhronizācijai ar mākoņpakalpojumiem. Tas varētu ietvert pielāgotus aizmugursistēmas risinājumus vai integrāciju ar mākoņkrātuves API.
Praktisks ieteikums: Projektējiet savus datu modeļus, domājot par sinhronizāciju. Ieviesiet konfliktu risināšanas stratēģijas, ja vairākas ierīces var modificēt tos pašus datus. Izmantojiet web workers, lai veiktu sinhronizācijas uzdevumus fonā, nebloķējot lietotāja saskarni.
4. Failu/direktoriju nosaukumu internacionalizācija (i18n) un lokalizācija (l10n)
Lai gan pati OPFS strādā ar failu sistēmas objektiem, jūsu izveidoto failu un direktoriju nosaukumi ir jāapsver internacionalizācijas kontekstā.
Praktisks ieteikums: Izvairieties no cietkodētiem failu vai direktoriju nosaukumiem, kas satur valodai specifiskas rakstzīmes vai terminus, ja vien jums nav robustas i18n stratēģijas šiem nosaukumiem. Ja lietotāja ģenerēts saturs veido failu nosaukumus, nodrošiniet pienācīgu sanitizāciju un kodēšanu, lai apstrādātu dažādas rakstzīmju kopas (piemēram, UTF-8).
5. Veiktspējas profilēšana dažādās ģeogrāfiskajās vietās
Faktisko OPFS veiktspēju var ietekmēt pamatā esošais diska ātrums, pārlūkprogrammu implementācijas un pat operētājsistēmas optimizācijas. Globālai auditorijai ir prātīgi veikt veiktspējas testēšanu no dažādiem reģioniem.
Praktisks ieteikums: Izmantojiet veiktspējas uzraudzības rīkus, kas var izsekot metrikas no dažādām ģeogrāfiskajām atrašanās vietām. Identificējiet jebkādus veiktspējas vājos punktus, kas varētu būt specifiski noteiktiem reģioniem vai pārlūkprogrammas/OS kombinācijām, un attiecīgi optimizējiet.
Piemēra scenārijs: globāls dokumentu sadarbības rīks
Iedomāsimies tīmekļa dokumentu sadarbības rīku, ko izmanto komandas dažādos kontinentos. Šai lietojumprogrammai ir nepieciešams:
- Ļaut lietotājiem izveidot un rediģēt dokumentus.
- Glabāt dokumentu saturu, metadatus un versiju vēsturi lokāli bezsaistes piekļuvei.
- Kešot koplietojamos resursus, piemēram, attēlus vai veidnes, kas tiek izmantotas dokumentos.
- Sinhronizēt izmaiņas ar centrālo serveri.
Kā var izmantot OPFS:
- Projekta struktūra: Lietojumprogramma var izmantot OPFS, lai izveidotu strukturētu direktoriju katram projektam. Piemēram, projektam ar nosaukumu 'Q3 Marketing Campaign' varētu būt direktorija, piemēram,
/projects/Q3_Marketing_Campaign/
. - Dokumentu glabāšana: Projekta direktorijā atsevišķi dokumenti varētu tikt glabāti kā faili, piemēram,
/projects/Q3_Marketing_Campaign/report.docx
. Versiju vēsturi varētu pārvaldīt, izveidojot jaunus failus ar versiju numuriem vai laika zīmogiem, piemēram,/projects/Q3_Marketing_Campaign/report_v1.docx
,/projects/Q3_Marketing_Campaign/report_v2.docx
. - Resursu kešošana: Jebkuri attēli vai citi resursi, kas iegulti dokumentos, varētu tikt glabāti īpašā 'assets' apakšdirektorijā, piemēram,
/projects/Q3_Marketing_Campaign/assets/logo.png
. - Bezsaistes piekļuve: Kad lietotājs pāriet bezsaistes režīmā, lietojumprogramma var lasīt šos failus tieši no OPFS, lai parādītu un ļautu rediģēt dokumentus.
- Efektīvi atjauninājumi: Kad tiek veiktas un saglabātas izmaiņas, OPFS's `createWritable` API ļauj efektīvi pārrakstīt vai pievienot datus failiem, samazinot datu pārsūtīšanas un apstrādes laiku.
- WebAssembly integrācija: Aprēķinu ietilpīgiem uzdevumiem, piemēram, dokumentu renderēšanai vai sarežģītiem atšķirību salīdzināšanas algoritmiem versiju salīdzināšanai, var izmantot WebAssembly moduļus, kas lasa un raksta datus tieši uz OPFS failiem.
Šī pieeja nodrošina veiktspējīgu, organizētu un bezsaistē pieejamu krātuves risinājumu, kas ir būtisks globālai komandai, kura var saskarties ar dažādiem tīkla apstākļiem.
OPFS un tīmekļa krātuves nākotne
Origin Private File System ir nozīmīgs solis uz priekšu, lai nodrošinātu tīmekļa lietojumprogrammām spēcīgas klienta puses datu pārvaldības iespējas. Tā kā pārlūkprogrammu piegādātāji turpina pilnveidot un paplašināt šīs API, mēs varam sagaidīt vēl sarežģītāku lietošanas gadījumu parādīšanos.
Tendence ir vērsta uz tīmekļa lietojumprogrammām, kas var konkurēt ar darbvirsmas lietojumprogrammām funkcionalitātes un veiktspējas ziņā. OPFS, īpaši apvienojumā ar WebAssembly, ir galvenais šīs vīzijas virzītājspēks. Izstrādātājiem, kas veido globāli orientētas tīmekļa lietojumprogrammas, OPFS izpratne un stratēģiska ieviešana būs izšķiroša, lai nodrošinātu izcilu lietotāju pieredzi, uzlabotu bezsaistes iespējas un nodrošinātu efektīvu datu apstrādi dažādās lietotāju vidēs.
Tā kā tīmeklis turpina kļūt arvien spējīgāks, spēja pārvaldīt datus lokāli un droši pārlūkprogrammā kļūs tikai svarīgāka. OPFS ir šīs kustības priekšgalā, nodrošinot pamatu nākamās paaudzes jaudīgām, veiktspējīgām un uz lietotāju orientētām tīmekļa pieredzēm visā pasaulē.
Secinājums
Origin Private File System (OPFS) ir jaudīga un būtiska API mūsdienu tīmekļa izstrādei, īpaši lietojumprogrammām, kas mērķētas uz globālu auditoriju. Piedāvājot izolētu, augstas veiktspējas, failu sistēmai līdzīgu krātuvi, OPFS paver jaunas iespējas bezsaistes funkcionalitātei, sarežģītai datu pārvaldībai un uzlabotai lietotāju pieredzei. Tās netraucētā integrācija ar WebAssembly vēl vairāk pastiprina tās potenciālu, ļaujot sasniegt darbvirsmas klases veiktspēju tieši pārlūkprogrammā.
Veidojot un pilnveidojot savas starptautiskās tīmekļa lietojumprogrammas, apsveriet, kā OPFS var risināt jūsu datu glabāšanas vajadzības. Izmantojiet tās iespējas, lai radītu atsaucīgākas, noturīgākas un funkcijām bagātākas pieredzes, kas iepriecinās lietotājus visā pasaulē.