Я создаю расширение Chrome, которое должно хранить много данных. Я установил разрешение unlimitedStorage
и успешно храню информацию с помощью вызовов на chrome.storage.local.set
. Однако я не могу звонить на chrome.storage.local.get
. Когда я звоню так просто, как chrome.storage.local.get(null, () => {})
, Chrome падает.
Моя проблема похожа на chrome.storage.local.get limit , за исключением того, что эта проблема касалась гораздо меньшего объема данных и оказалась случайной. Когда я звоню chrome.storage.local.getBytesInUse(null, i => console.log(i))
, я получаю результат 176031461
. (Следует признать, что 180 МБ - это намного больше, чем обычно используют расширения Chrome, но это расширение будет работать на моей собственной машине.)
Я хотел бы иметь возможность сохранить все эти данные в файл JSON, но для этого, мне кажется, сначала нужно перенести их в память, и единственный способ сделать это - через chrome.storage.local.get
. Я пытаюсь использовать метод, описанный в Расширение Chrome: локальное хранилище, как экспортировать для загрузки данных, но он даже не доходит до функции обратного вызова. Я не уверен, что вызывает его сбой, и я не думаю, что это ограничение памяти, учитывая, что я следовал инструкциям в Максимальное использование памяти для процесса Chrome (вкладка) и как мне его увеличить ? , чтобы увеличить максимальную память Chrome до 4 ГБ.
Одним из возможных решений было бы установить для первого параметра значение, отличное от null
, и загружать данные порциями, но я бы предпочел этого не делать, если мне не нужно.
Мои вопросы:
- Какое ограничение может быть получено таким образом?
- Можно ли как-нибудь получить все эти данные без сбоев сразу?
- Есть ли лучший способ сохранять файлы с расширением Chrome?