Как я могу получить много данных в chrome.storage.local? - PullRequest
0 голосов
/ 12 ноября 2018

Я создаю расширение 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, и загружать данные порциями, но я бы предпочел этого не делать, если мне не нужно.

Мои вопросы:

  1. Какое ограничение может быть получено таким образом?
  2. Можно ли как-нибудь получить все эти данные без сбоев сразу?
  3. Есть ли лучший способ сохранять файлы с расширением Chrome?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...