来自How can we show recent notifications in jQuery/php/mySQL? update
的问题所以我尝试做一个小通知系统,通知用户将新行添加到数据库的位置,最后我设法显示通知一次。我现在的问题是音频,一般来说,如果我写的代码是“好的”或者我应该改变一些东西。 音频:我希望每次收到通知时都会播放声音,但它会在开头播放一次然后,当我收到通知时它不起作用。我尝试添加一个loopcounter,重置它并检查对象是否为空,但它不起作用。如何处理音频的任何建议或良好做法?
代码:
$.ajaxSetup ({
cache: false
});
var loopLimit = 1;
var loopCounter = 0;
setInterval(function(){
$.getJSON('fetchResults.php', function(data) {
$("#loadingDiv").show();
$('#noti-box').empty();
$("#notificationTitle").empty();
//CHECKING IF EMPTY
if(jQuery.isEmptyObject(data)){
//this doesn't work, it goes to else.
console.log("there is no data");
}else{
console.log(data);
if (loopCounter < loopLimit){
var sound = $("#notification")[0];
sound.currentTime = 0;
sound.load();
sound.play();
loopCounter++;
}
$.each(data.vormid, function(i, vormid) {
$("#noti-box").append('<div class="alert alert-info"><button id='+data.vormid[i].ravim_id+' data-dismiss="alert" class="close close-sm" type="button"><i class="fa fa-times"></i></button>New form filled out by Dr. <b>'+data.vormid[i].arsti_eesnimi+' '+data.vormid[i].arsti_perekonnanimi+' </b> at '+data.vormid[i].date_created+'</div>');
var id= $(".alert.alert-info").val();
$("#notificationTitle").append('<li style="font-size: 14px; padding: 0; margin: 0 0 10px 10px; color: #666666;" >New form filled out by Dr. '+data.vormid[i].arsti_eesnimi+' '+data.vormid[i].arsti_perekonnanimi+'</li>');
$(".close").on('click', function () {
var ravim_id = $(this).attr('id');
$.ajax({
type: "POST",
url:'updateResults.php',
data:"ravim_id=" + ravim_id,
success:function(data){
console.log("success");
},error: function(data){
console.log("not saved");
}
});
});
});
}
$("#loadingDiv").fadeOut("slow");
});
}, 5000);