Я пробовал искать аналогичную проблему, но не могу найти ответ здесь.
Я хочу давать звуковое уведомление каждый раз, когда содержимое файла изменяется. Файл вызывается с помощью jquery каждую секунду.
Код, который я придумал, дает ошибку, которая всегда дает звук в секунду, кажется, что значение div пусто, поэтому оно считается разным каждый раз и воспроизводится звук.
Может ли кто-нибудь исправить это для меня?
<script type="text/javascript">
var tmp;
$(document).ready(function(){refreshTable();});
function refreshTable(){
tmp=$("#tableHolder2").val();
$.get("temp1.php", doSomethingWithData);
}
function doSomethingWithData(data) {
if(tmp!=data){
$("#tableHolder2").text(data);
var sound = new Audio('bell_ring.ogg');
sound.play();
}
$("#tableHolder").text(data);
setTimeout(refreshTable, 1000);
}
</script>
<div id="tableHolder"></div>
<div id="tableHolder2"></div>
Temp1.php является обычным текстовым файлом с любым контентом. Он вернулся нормально, без ошибок. Проблема в звуке. Он сохраняет звуковой сигнал не только при изменении данных.
Наконец, я смог заставить код работать. Я отправляю ответ, чтобы потом его могли использовать другие.
<script type="text/javascript">
tmp="";
sound = new Audio('bell_ring.ogg');
$(document).ready(function(){refreshTable();});
function refreshTable(){
$.get("temp1.php",withData);
setTimeout(refreshTable, 1000);
}
function withData(data) {
if(tmp!=data){
sound.play();
tmp=data;
}
$("#tableHolder").html(data);
}
</script>