Во время выполнения Создать аудио При сбое — Обновить из кэша или с сервера?

#javascript #audio #page-refresh

Вопрос:

Я создаю звук во время выполнения, а затем устанавливаю источник.

 let snd = new Audio(); snd.src = "file.mp3";  

Это работает в Edge каждый раз. Иногда он выходит из строя в Chrome, особенно когда я отлаживаю. Он действительно выходит из строя только в первый раз, когда я начинаю отладку в сеансе, и почти всегда работает каждый раз после этого. Как только это сработает, оно снова и снова срабатывает для этого сеанса.

Обратите внимание на ошибку MEDIA_ERR_SRC_NOT_SUPPORTED , которая, как я знаю, не соответствует действительности, потому что она работает, как правило, во второй раз.

Из того, что я прочитал здесь на Stackoverflow, может быть известная проблема с этим для больших звуковых файлов (что в моем случае).

Поэтому мое решение состоит в том, чтобы обновить страницу при возникновении ошибки:

 snd.onerror = _ => window.location.refresh(true);  

Обратите внимание на true .

Когда вы это делаете, это true означает, что вы обновляетесь с сервера. false означает, что вы обновляете данные из кэша.

ВОПРОС: Учитывая мою проблему, что я должен делать, true или false ?

Из-за низкой частоты отказов это настоящая проблема для отладки, поэтому любые советы будут высоко оценены.

Ответ №1:

Я думаю, что это так true . Это срабатывало каждый раз. false работало всего несколько раз. Но, как я уже сказал, поскольку это прерывистая ошибка, ее очень трудно отладить.