demo · v149 · developer trial
Quota & Persistence Explorer
Read the storage quota estimate before and after writing to IndexedDB — watching how the SQLite backend reports usage via navigator.storage.estimate(). Request persistent storage, check durability modes ('default', 'strict', 'relaxed'), and compare estimated vs actual usage across a configurable write batch.
Batch size:
500 records
Record size:
512B
—
Quota
—
Used
—
IDB usage
—
% used
Persistence unknown
Click "Request persistence" to check
Transaction durability modes
'default'
Recommended
Browser decides — SQLite WAL journal gives good durability
'strict'
Safest
Waits for OS flush; slower writes but guaranteed on power loss
'relaxed'
Fastest
No OS sync; fastest writes but small risk on hard crash
Write batch by durability
Operation log
// navigator.storage.estimate() — reads quota and usage
const estimate = await navigator.storage.estimate();
console.log(estimate.quota); // bytes available to this origin
console.log(estimate.usage); // bytes currently used
console.log(estimate.usageDetails?.indexedDB); // IDB specifically
// navigator.storage.persist() — request persistent storage
const persisted = await navigator.storage.persist(); // true if granted
const isPersisted = await navigator.storage.persisted(); // re-check
// IDB transaction durability modes (IndexedDB)
const tx = db.transaction('store', 'readwrite', { durability: 'strict' });
// 'default' | 'strict' | 'relaxed'
see also
- Bulk Write Stress Test — throughput benchmark
- Transaction Durability — correctness guarantees
- ChromeStatus: IndexedDB SQLite backend step 2
- IndexedDB spec
implementation reference
Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗