Böngésző kliens oldali adattárolás és a kvótája

A kérdésem az, hogy csinált-e valaki már olyat, hogy nagyobb mennyiségű adatot tárolt volna weboldalon klines-oldalon? Úgy, hogy megemelte volna valamilyen módon a tárolási kvótáját?

Ilyet szeretnék csinálni - néhány száz megabájtot tárolni a böngészőoldalhoz kötve. Kliens oldali appként megvalósítva, ServiceWorker-rel kombilálva olyan weboldal készülne, ami akkor elér egy "adatbázist", ha a szerver nem elérhető és használható marad. Úgy tűnik, hogy az egyetlen hiányzó láncszem az, hogy meg tudjam emelni az oldal tárolási kvótáját.

A tároláshoz az indexedDB API tűnik egy jó kompromisszumnak, viszont ahogy próbáltam pártíz MB után nem hajlandó több adatot tárolni, és hibát dob a tárolási műveletekre, de úgy, hogy nem is ír okot. (Firefox alatt)

Létezik elvileg egy storageQuota API, amit viszont a Firefox nem valósított meg, és a dokumentációja szerint ez máris deprecated. https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota - Deprecated. Not for use in new websites. De sehol nem találtam meg, hogy van-e valami helyette? Chromium-ban néztem, az sem valósítja meg ezt az API-t. Chrome elvileg igen, de azt még nem próbáltam. (Chrome-ot nem szívesen telepítek a fejlesztős gépemre, de ki fogom próbálni egy másikon.)

Létezik elvileg egy FileSystem API is, aminek a segítségével lehet adatokat tárolni, de sajnos ezt sem ismeri a Firefox. A Chromium sem ismeri a FileSystem API-t, a próbálkozásaim alapján.

A kibővített kérdésem az, hogy létezik-e olyan megoldás, ami cross-browser és alkalmas arra, hogy az eszköz tárolókapacitásáig adatokat (képek, szöveg, stb) tároljunk a usertől engedélyt kérve?

Ha nincs cross-browser megoldás, akkor van-e olyan, ami Androidon (telefon és tablet) és legalább egy PC-s böngészőn működik? Tehát némi korlátozással, de tudnék belőle olyan terméket csinálni, ami működik a userek gépein?

Hozzászólások

Az oldal áthúzott lakatos, nincs rendben valami az SSL certifikátja körül. Emiatt lehet, hogy az application cache és a service worker nem működik szerinte: a doksikat olvasgattam, és írták, hogy csak jól működő SSL mellett, vagy localhost-on engedélyezi a böngésző.

Az accessing file system rész nálam piros ikszes - összhangban azzal, amit magam is tapasztaltam.

Szerkesztve: 2020. 08. 18., k – 15:56

Itt kifejtik hogy böngésző függő. Az opera hozzáállása fejlesztőbarát, de alapvetően erős secu hibának érzem ha a szerver oldal tudja növelni, és korlátlanul tud nálam bármit tárolni. Persze ha explicit felhasználói engedélyt kellene kérnie, akkor oké.

PWA esetén

Szerkesztve: 2020. 08. 18., k – 19:31

Ugyan nem szeretem az ilyen megoldásokat, de Androidra egy natív app + webview, desktopra meg Electron?

Nyilván több meló, mintha megoldható lenne simán böngészőben, JavaScriptből, de a böngésző az manapság ilyen öszvér.

Böngészésre egyre kevésbé, alkalmazásplatformnak meg még mindig nem alkalmas.

Szerk:

Esetleg Flutter? r3flow egész jó kis összefoglalót írt, ez alapján le tudod fedni a mobilt, webet, desktopot (bár az utóbbi kettő béta/alfa státuszú. Nem tudom van-e valahol roadmap).