Атрибут preload тега <audio>
Описание
Атрибут preload для тега <audio> указывает браузеру, как следует загружать аудиофайл при инициализации страницы. Этот атрибут помогает оптимизировать использование сетевых ресурсов и улучшить пользовательский опыт.
<audio controls preload="metadata">
<source src="track.mp3" type="audio/mpeg">
Ваш браузер не поддерживает аудио элемент.
</audio>
Допустимые значения:
| Значение | Поведение | Рекомендации |
|---|---|---|
none |
Не загружать аудио заранее | Для экономии трафика |
metadata |
Загрузить только метаданные (длительность и др.) | Оптимальный выбор |
auto |
Разрешить браузеру самому решать | Не рекомендуется |
| (отсутствует) | Эквивалентно auto |
Лучше явно указать |
Особенности работы:
- Браузер может игнорировать атрибут в зависимости от настроек
- На мобильных устройствах часто используется
preload="none"по умолчанию - Не влияет на программную загрузку через JavaScript
- Метаданные включают длительность, размер файла и кодек
<!-- Для главного аудио на странице -->
<audio controls preload="auto">
<source src="main-track.mp3" type="audio/mpeg">
</audio>
<!-- Для дополнительных звуков -->
<audio preload="none" id="sound-effect">
<source src="effect.ogg" type="audio/ogg">
</audio>
JavaScript контроль предзагрузки:
const audio = document.querySelector('audio');
// Принудительная загрузка
audio.preload = 'auto';
audio.load();
// Проверка состояния загрузки
console.log('Загружено:', audio.buffered.end(0));
Лучшие практики:
- Используйте
metadataдля основного контента noneдля второстепенных/скрытых аудио- Избегайте
auto- может загружать весь файл - Для аудио-плееров комбинируйте с
bufferedсвойством
Ограничения: Браузеры могут накладывать свои ограничения на предзагрузку, особенно на мобильных устройствах и при экономии трафика.
Определение поддержки preload:
const audio = document.createElement('audio');
console.log('Поддерживаемые значения preload:',
'none' in audio, 'metadata' in audio, 'auto' in audio);
Совет: Для аудио-плееров используйте комбинацию preload="metadata" и ручную догрузку при взаимодействии пользователя.
Примечание: В современных браузерах значение по умолчанию может варьироваться в зависимости от типа сети (экономный режим и т.д.).