звук один раз при обновлении

250
02 марта 2018, 19:04

Таблица на моем сайте обновляется, например, каждые 10 секунд, проверяя наличие новых записей через AJAX.

Сейчас, при появлении новой записи показывается фон в строке таблицы (выделяет её).

Вопрос: как сделать так, чтобы при первом показе воспроизводился звук (например, щелчок). Звук должен быть исключительно в первый раз при появлении нового блока; в последующих обновлениях не должно быть никаких звуковых сигналов.

Answer 1

С помощью MutationObserver(); можно отслеживать изменения HTML-кода. (В данном случае появился новый ряд в таблице.)

var target = document.getElementById('some-id'); 
  
// создаём экземпляр MutationObserver 
var observer = new MutationObserver(function(mutations) { 
  mutations.forEach(function(mutation) { 
    console.log(mutation.type); 
	audio.play(); 
  });     
}); 
  
// конфигурация нашего observer: 
var config = { attributes: true, childList: true, characterData: true }; 
  
// передаём в качестве аргументов целевой элемент и его конфигурацию 
observer.observe(target, config); 
  
// по желанию позже можно остановить наблюдение 
observer.disconnect(); 
 
setTimeout(function() { 
	element.setAttribute('data-text', 'whatever'); 
	target.innerHTML=target.innerHTML; 
}, 10000);
<div id="some-id"></div> 
<audio id=audio src="sound.mp3"></audio>

READ ALSO
Пустая страница при обращении к API Angular

Пустая страница при обращении к API Angular

Обращаюсь к локальному Web Api по адресу http://localhost:50806/api/UsersОн возвращает:

305
Как отправить много данных через ajax?

Как отправить много данных через ajax?

Есть 2 скрипта: Первый берет данные из 2 форм и отправляет обработчику (фильтр)

216
Как сравнить ViewBag.Error?

Как сравнить ViewBag.Error?

Не могу сравнить @ViewBagError из контроллера , так как это не строка( Как это исправить?

233
Поставить точки в больших числах [дубликат]

Поставить точки в больших числах [дубликат]

На данный вопрос уже ответили:

253