В настоящее время изучаются ограничения indexeddb для различных браузеров. Обнаружено, что Chrome не имеет жесткого ограничения, но необходимо предоставить разрешения (Источник), что Firefox составляет 50% локального хранилища (Источник), но не смог найти ничего для Edge или Safari.
Я экспериментировал с Edge и обнаружил, что у него нет ограничения, установленного IE: 500 МБ на домен (Источник)
К сожалению, navigator.storage.estimate() не работает на Edge https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate
Есть ли у кого-нибудь опыт работы с Edge или Safari по этому поводу?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ограничение Microsoft Edge IndexedDB составляет 20% от глобального максимума, аналогично Firefox и Chrome:
It depends on the device and which version of Edge you're using. The latest version is similar (sic) to Chrome/FF and have the following limits per domain - each domain can take up to 20% of the global limit (which is for all domains):
Source: https://twitter.com/gregwhitworth/status/1020391736974094336
Итак, насколько велика база данных для каждого домена, зависит от размера тома вашего жесткого диска.
Ограничение Safari IndexedDB для настольных компьютеров не ограничено, согласно: https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
In mobile Safari, apps can use up to 50MB max, whereas desktop Safari allows unlimited storage (and prompts after 5MB)
Тем не менее, Safari внедрил новые ограничения IndexedDB, о которых впервые было сообщено в ноябре 2018 года:
If the size of free disk space is over 1 GB, the default limit is 500 MB; otherwise it is half the free disk space. - WebKit change tracker
@Sam в нескольких доменах или только в одном? Если первое, то ссылка выше устарела, и было бы хорошо сообщить об этом Microsoft. Во всяком случае, я могу попытаться связаться с некоторыми людьми из команды Edge и узнать, что они говорят.
всего один домен. Я был на локальном хосте и добавлял записи размером ~ 25 МБ каждая, пока не достиг 20 записей. Каждая запись содержала случайные данные.
Я не думаю, что это правильно для Mobile Safari, см. trac.webkit.org/changeset/237700/webkit
@nullability Спасибо, я обновил сообщение, чтобы отразить новую реализацию в Safari.
На данный момент Safari, похоже, плохо документирован, поэтому я решил поделиться своим недавним опытом работы с ограничениями хранилища Safari для мобильных устройств (11.4) / IndexedDB.
TL; DR: квота 50 МБ не применяется к хранилищу IndexedDB в Safari Mobile (11.4)
Первоначально я думал, что существует жесткое ограничение в 50 МБ для совокупного количества всех методов автономного хранения (Local + Cache + Session + IndexedDB + WebSQL + Cookies).
Я загружаю 180 МБ данных по сети и выгружаю их прямо в IndexedDB (браузер сообщает о потреблении IndexedDB 98 МБ - здесь происходит какое-то внутреннее сжатие), а Safari (мобильный 11.4) с радостью принимает их в IndexedDB.
Ограничение в 50 МБ, по-видимому, применяется только к локальному / кэш-хранилищу (возможно, другим), а не к IndexedDB - я предполагаю, что здесь применяются квоты% объема.
Боковое примечание: не пытайтесь сэкономить место в вашем IndexedDB, сжимая контент с помощью LZ-строки или аналогичного - реализация внутреннего сжатия браузеров означает, что это либо не имеет значения, либо фактически увеличивает потребление!
вы уверены, что данные были сжаты, а не просто перезаписаны?
Отлично, спасибо! Вот дополнительная информация на случай, если кому-то интересно love2dev.com/blog/…
Нечего много говорить о SAFARI, но для MS Edge таблица, показанная выше в первом ответе, является точной в соответствии с документацией, предоставленной MS EDGE, а также если вы попробуете MS Edge версии 38. Для версии MS Edge 42 (который я установил на планшет ASUS p027) Я могу подтвердить, что ограничения и ограничения очень похожи на Chrome для API Cache Storage. Согласно MDN https://developer.mozilla.org/en-US/docs/Web/API/StorageQuota, вы можете запрашивать и запрашивать информацию об использовании хранилища и квотах. Это экспериментальная технология, но она даст вам достаточно близкие оценки, и это свойство поддерживается в версии MS EDGE 42 (по крайней мере, на указанной выше вкладке, и у меня нет MS edge 42, установленного на моем компьютере / настольном компьютере / ноутбуке. так как вы не можете установить / обновить его, не обновив Windows itselt!) ... Надеюсь, эта часть информации работает для вас, если вы найдете более подробную информацию, пожалуйста, поделитесь с нами. Ваше здоровье:)
P.S. Но наверняка и Safari, и Edge серьезно отнеслись к этому сейчас и уже входят в их приоритеты развития. Более того, Safari 12 или более поздней версии, по крайней мере, поддерживает PWA с уровнем текста / изображений до 50 МБ на мобильных устройствах, но не поддерживает видео.
По состоянию на 19 октября 2020 года принятый ответ кажется опровергнутым на примере, поскольку я только что загрузил 30 ГБ с помощью indexedDB как в Chrome, так и в Edge (последние версии обоих). Я делал это по 1 гигабайту за раз, с сотнями объектов на каждой итерации, чтобы у обоих браузеров была широкая возможность возражать, если они захотят это сделать. Они не.
Данные оставались постоянными и доступными после перезапуска браузеров. Согласно принятому ответу, я должен был быть ограничен 4G (20% от 20G, так как мой диск 500G, или «> 128GB»).
В Safari для iPadOS 14.5.1 веб-сайт может использовать до 2 гигабайт для IndexedDB.
Спасибо за ответ. Как я уже упоминал в своем вопросе, ограничение в 500 МБ предназначено для Internet Explorer, а не для Edge. Я протестировал Edge и смог без проблем сохранить> 800 МБ случайных данных в Indexeddb.