При каких условиях браузер будет кэшировать файлы <video>?

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

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

Спасибо заранее!

Ответ 1

Следующее работает, чтобы указать браузеру кэшировать файлы. Последняя строка была необходима, чтобы сервер доставлял веб файлы с правильным типом MIME заголовка.

# Expires is set to a point we won't reach,
# Cache control will trigger first, 10 days after access
# 10 Days = 60s x 60m x 24hrs x 10days =  864,000
<FilesMatch "\.(webm|ogg|mp4)$">
Header set Expires "Mon, 27 Mar 2038 13:33:37 GMT"
Header set Cache-Control "max-age=864000"
</FilesMatch>
AddType video/webm .webm

Ответ 2

Спецификация HTML5 не является строгой о том, что браузер должен делать с кешированием видеофайлов - он просто предлагает, что "разумно", поэтому теоретически разные браузеры могут иметь другое поведение.

Веб-разработчики могут попытаться контролировать кеширование видео с помощью атрибута preload в элементе <audio> или <video> следующим образом:

preload=none Пользователь может не смотреть видео (лучше не загружать)

preload=metadata Пользователь может посмотреть видео (то есть лучше просто загрузить информацию о видео (размер, продолжительность и т.д.))

preload=auto Пользователь, скорее всего, будет смотреть видео (например, хорошая идея предустановить и кэшировать видео)

Как я уже сказал, спецификация не применяет это, поэтому браузеры могут игнорировать значения предварительной загрузки, если они выбирают. Например, если браузер обнаруживает медленное или нестабильное соединение и поэтому отказывается от предварительной загрузки, хотя я не знаю о каких-либо браузерах, которые делают это в настоящее время.

Дополнительная информация о атрибуте preload приведена здесь: http://www.w3.org/TR/html5/video.html#attr-media-preload