Подтвердить что ты не робот

Каков лимит хранения для обслуживающего персонала?

Большинство браузеров предоставляют localStorage лимит хранения 5 МБ на домен. Существуют ли ограничения/ограничения памяти для обслуживающих работников?

Я знаю, что веб-работники (на которых работают рабочие службы) не имеют таких ограничений. Но веб-рабочие точно не используются для кэширования ресурсов, вместо этого они используются больше для обработки (поэтому основной проблемой здесь является ЦП).

Если нет ограничений на размер памяти, может ли плохо спроектированный веб-сайт сбой браузера?

4b9b3361

Ответ 1

Недавно я наткнулся на эту статью: offline-cookbook, которая гласит:

Вашему источнику предоставляется определенное количество свободного места, чтобы делать то, что он хочет. Это свободное пространство разделяется между всеми хранилищами хранения: LocalStorage, IndexedDB, Файловая система и, конечно же, Cache.

сумма не указана, она будет отличаться в зависимости от условий устройства и условий хранения. Вы можете узнать, сколько у вас есть:

navigator.storageQuota.queryInfo("temporary").then(function(info) {
   console.log(info.quota);
   // Result: <quota in bytes>
   console.log(info.usage);
   // Result: <used data in bytes>
});

Вышеприведенный код может не работать во всех браузерах. (например, в chrome < 48, возможно, придется искать webkitPersistentStorage и т.д.)

Другая полезная информация/ресурсы

  • Согласно автономное хранилище для прогрессивных веб-приложений Адди Османи

    В Chrome and Opera: ваше хранилище за начало (а не за API). Оба механизма хранения будут хранить данные до тех пор, пока не будет достигнута квота браузера. Приложения могут проверять, сколько квот они используют с API управления квотами (как описано выше).

    Firefox нет ограничений, но будет запрашиваться после хранения данных на 50 МБ

    Mobile Safari максимум 50 МБ

    Desktop Safari unlimited (подсказки после 5 МБ)

    IE10+ maxes при 250 МБ и подскажет при 10 МБ

  • Более подробное руководство по Работа с квотами в мобильных браузерах от Eiji Kitamura.

На данный момент это самые актуальные статьи/решения, найденные для моей проблемы. Если кто-нибудь знает какую-то лучшую статью или спецификации, пожалуйста, поделитесь.

Ответ 2

Нет явного предела. Все современные браузеры являются многопроцессорными или похожими, поэтому плохо спроектированная страница (или SW) не будет делать ничего хуже, чем сама авария.

Обратите внимание, что спецификация SW очень ясна в том, что браузер может убить и перезагрузить ПО в любой момент по любой причине. (Если DevTools открыт на странице, Chrome намеренно убивает SW для страницы постоянно, чтобы побудить вас принять хорошие практики.)

Ответ 3

Я не уверен на 100%, но я думаю, что вы полностью ограничены тем, что доступно на клиентской машине. Как и в случае, нет фиксированного верхнего предела

Если кто-то запускал зверя машины, и браузер был единственным активным приложением, то, скорее всего, у вас будет достаточно доступного хранилища.

Однако, если это была старая ограниченная машина, которая едва дышала; у вас будет очень мало

Это полностью зависит от того, что вы пытаетесь сделать на самом деле. Вы действительно должны использовать сервис-работников для хранения вещей, важных для работы вашей страницы/приложения.

Ответ 4

В браузере latests вы можете использовать StorageManager, который представляет собой реализацию нового стандарта для хранилища браузера, посмотрите эта статья mozilla.

let _storageStats = await navigator.storage.estimate();
console.log(_storageStats);
/*
  Will prompt something like this
  {quota: 15946471833, usage: 682}
  Which is a representation of quota/usage in bytes
  As you can see I get an insane quota of almost 16 GB
*/