Книга: HTML5 для веб-дизайнеров
Буферизация
Буферизация
В какой-то момент спецификация HTML5 включала еще один булев атрибут для элемента audio
. Атрибут autobuffer
был более вежливым и продуманным вариантом неприятного атрибута autoplay
. Он позволял авторам сообщить браузеру, что хотя аудиофайл и не нужно начинать проигрывать автоматически, скорее всего в какой-то момент пользователь начнет его проигрывать, поэтому браузеру стоит начать подгружать файл в фоновом режиме.
Это был бы полезный атрибут, но, к сожалению, Safari сделал лишний шаг вперед. Этот браузер начал подгружать аудиофайлы вне зависимости от того, присутствует атрибут autobuffer
или нет. Не забывайте, что из-за того, что autobuffer
– булева переменная, не было никакого способа сказать Safari, что подгружать аудиофайл не нужно: autobuffer="false"
– то же самое, что autobuffer="true"
или любое другое значение (http://bkaprt.com/html5/5)[9].
В данный момент атрибут autobuffer
заменен атрибутом preload
. Это не булев атрибут. Он принимает одно из трех возможных значений: none
, auto
и metadata
. Написав preload="none"
, вы можете явным образом указать браузеру, что подгружать аудиофайл заранее не нужно:
<audio src="witchitalineman.mp3" controls preload="none">
</audio>
Если у вас на странице только один элемент audio, возможно, стоит использовать preload="auto"
, но чем больше элементов audio появляется, тем больше интернет-канал посетителей вашей странички будет загружен из-за излишней предварительной подгрузки.