2016-05-11 6 views
0

Я использую localforage с драйвером indexedDB. Мой indexedDB-хранилище довольно большой, но у меня создалось впечатление, что indexedDB никогда не исчерпывается, он просто заканчивается старым контентом.Может ли индексированный DB пробежать?

Однако большое количество запросов к индексированномуDB не выполняется с ошибкой: «DOMException: транзакция вышла из-за неактивности», после того как она висит на 60 секунд.

Если я просто делаю простой

function testWrite(n) { 
    localforage.setItem(`test:${n}`, Math.random().toString(16).slice(2)) 
    .then((v) => console.log(x)) 
    .catch((err)=>console.log(err)) 
} 
for (var x = 0; x < 10; x++) { 
    testWrite(x) 
} 

в инкогнито указал на моем веб-приложение, он отлично работает. Если я сделаю то же самое в окне non-incognito, я получу таймаут. Важно то, что я получаю такие же проблемы с таймаутом, если я увеличиваю размер петли до чего-то большого, даже в новой сессии. Так что кажется, что где-то есть какой-то порог, это не совсем правильно.

+0

«Сделка, истекающая из-за неактивности», представляет собой специфическую для Chrome вещь, которая срабатывает, когда никакой активности не видно из соединения , что обычно указывает на зависание процесса. Если у вас есть репродукция, это ошибка - напишите файл на crbug.com –

ответ

3

Ограничений по размеру одного элемента базы данных не существует, однако в некоторых случаях существует ограничение на общий размер базы данных IndexedDB. Этот предел (и способ, которым пользовательский интерфейс будет его утверждать) варьируется от одного браузера к другому: https://www.raymondcamden.com/2015/04/17/indexeddb-and-limits/