При каких условиях браузер будет кэшировать файлы <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