Ниже приведены два примера с текущим 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
или слабую ссылку, в которой что-то может быть удалено по прихоти системы, в то время как постоянные данные всегда должны информировать пользователя перед удалением.
Возможно, вы захотите начать с оболочки, чтобы избежать всего ада совместимости браузера, который возникает при работе с веб-API (во многих частях спецификаций прямо указано: «Это предложение и может быть изменено без каких-либо уведомлений»). Dexie, например, является активно разрабатываемой оболочкой для IndexedDb.
chromestore.js — еще одна оболочка (но ее не трогали годами).
person
Paul Irish
schedule
15.04.2015