Ответ 1
Смысл этого в том, что другой процесс, чем Chrome инициировал запрос:
Некоторый другой процесс или действие инициировало запрос, такой как пользователь переход на страницу по ссылке или ввод URL в адрес бар.
В случае Chrome видео декодируется с использованием ffmpeg, который, вероятно, является другим процессом. Вероятно, этот процесс снова откроет файл из кеша, поэтому инициируется запрос или кеш содержит только последнюю часть (или максимальную длину контента в сумме) файла, если файл большой и должен повторно использоваться части содержимого снова, но вы указываете, что, когда кеш отключен, этого не происходит.
localStorage
имеет очень ограниченный размер и не очень подходит для хранения видеоданных (он может содержать только строки, поэтому видео должно быть закодировано как mime-64, которое увеличивает размер 33% + каждый char занимает два байта из-за юникода).
Лучшей альтернативой могло бы быть использование IndexedDB - это может содержать гораздо большие данные, а также хранить данные в двоичном формате (Blob). Но он имеет начальный предел, как и в localStorage
, но вопреки последнему методу вы можете запросить больший размер, который пользователь должен подтвердить. Я не тестировал, но предполагаю, что вы столкнетесь с теми же ограничениями в частном режиме, что и с любым другим механизмом хранения.