以下是当前API 的两个示例。
它使用navigator.webkitPersistentStorage.requestQuota
而不是弃用的window.webkitStorageInfo.queryUsageAndQuota
:
查询配额
navigator.webkitPersistentStorage.queryUsageAndQuota (
function(usedBytes, grantedBytes) {
console.log('we are using ', usedBytes, ' of ', grantedBytes, 'bytes');
},
function(e) { console.log('Error', e); }
);
请求配额
var requestedBytes = 1024*1024*280;
navigator.webkitPersistentStorage.requestQuota (
requestedBytes, function(grantedBytes) {
console.log('we were granted ', grantedBytes, 'bytes');
}, function(e) { console.log('Error', e); }
);
这里我们使用navigator.webkitPersistentStorage
查询和请求持久化存储配额。您还可以使用navigator.webkitTemporaryStorage
临时存储配额。
当前的 Chrome 实现跟踪这个特定的规范版本,它描述了更多内容:https ://www.w3.org/TR/quota-api/ 。
temporary
他们还特别解释了与permanent
此处的区别:临时数据更像是您的tmp
文件夹或弱引用,因为系统可能会随心所欲地删除内容,而永久数据应始终在删除之前通知用户。
您可能希望从一个包装器开始,以逃避所有与 Web API 相关的浏览器兼容性地狱(规范的许多部分明确指出:“这是一个提议,可能会在没有任何通知的情况下更改”)。例如,Dexie是一个积极开发的 IndexedDb 包装器。
chromestore.js是另一个包装器(但多年未触及)。