Есть ли у Edge / Safari ограничение на размер Indexeddb?

В настоящее время изучаются ограничения 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 по этому поводу?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
7
0
6 723
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Ограничение 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):

IndexedDB Size Table

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

Спасибо за ответ. Как я уже упоминал в своем вопросе, ограничение в 500 МБ предназначено для Internet Explorer, а не для Edge. Я протестировал Edge и смог без проблем сохранить> 800 МБ случайных данных в Indexeddb.

Sam 18.07.2018 19:20

@Sam в нескольких доменах или только в одном? Если первое, то ссылка выше устарела, и было бы хорошо сообщить об этом Microsoft. Во всяком случае, я могу попытаться связаться с некоторыми людьми из команды Edge и узнать, что они говорят.

TylerH 18.07.2018 20:32

всего один домен. Я был на локальном хосте и добавлял записи размером ~ 25 МБ каждая, пока не достиг 20 записей. Каждая запись содержала случайные данные.

Sam 18.07.2018 20:35

Я не думаю, что это правильно для Mobile Safari, см. trac.webkit.org/changeset/237700/webkit

nullability 09.09.2019 22:34

@nullability Спасибо, я обновил сообщение, чтобы отразить новую реализацию в Safari.

TylerH 09.09.2019 22:53

На данный момент 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-строки или аналогичного - реализация внутреннего сжатия браузеров означает, что это либо не имеет значения, либо фактически увеличивает потребление!

вы уверены, что данные были сжаты, а не просто перезаписаны?

fgilio 15.08.2019 21:52

Отлично, спасибо! Вот дополнительная информация на случай, если кому-то интересно love2dev.com/blog/…

fgilio 18.08.2019 02:23

Нечего много говорить о 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.

Другие вопросы по теме