JS实现定时轮询新消息弹窗与语音提示

作者:代码拾荒时间:2026-10-30 05:35:37浏览:235

本文介绍在Java Web系统中通过AJAX定时轮询实现新消息实时提示的方案。结合HTML5 Audio标签播放提示音,并利用jQuery Gritter插件生成粘性弹窗,适用于用户量较小的内部系统。

方案背景与适用场景

在Java Web认证系统的开发过程中,业务方要求在数据发生更新时,前端页面能够弹出提示框,以便周围的工作人员能够及时获知有新数据提交。除了采用即时推送技术外,还可以利用AJAX轮询来实现这一功能。

该方案的核心原理是在页面加载后启动定时任务,定期执行AJAX请求以获取最新数据状态。一旦检测到新数据,系统便会触发语音播报和弹窗提示。这种实现方式的主要缺点在于会频繁调用数据库,因此仅建议应用于用户规模较小的系统中。

语音与弹窗功能实现

1、实现语音提示功能


<audio id="sound" autoplay="autoplay">

通过动态修改HTML元素属性来播放语音文件,具体代码如下:


document.getElementById("sound").src="<%=basePath%>admin/media/global.wav";

2、动态生成消息提示框

在此处我导入了jquery.gritter.js和jquery.gritter.css,具体实现代码:


jQuery(document).ready(function() { 
setInterval(function(){ 
$.post('ajax/linecheck',function(data){
var json=eval("("+data+")");
$.each(json,function(index,item){
$("#line"+item.id).html("")
$.each(item.localList,function(index,item2){
if(item2.attendOCList!=""){
$("#line"+item.id).append("<li class='in' id='in"+item2.id+"'><div class='avatar'>"
+item2.location+"</div><div class='message'><ul id=li"+item2.id+"></ul></div></li>")
}
$.each(item2.attendOCList,function(index,item3){
if(item3.status==0){
$("#li"+item2.id).append("<li class='user'><span class='username'>"+item3.person_name
+"</span><br><span style='color:red;' class='username'>时间: "
+ item3.today+" "+item3.times +"</span><br><span class='username'>电话:"
+item3.person_phone+"</span><br><span class='username'>身份证:"
+item3.card_id+"</span></li><hr>");
}else{
$("#li"+item2.id).append("<li class='user'><span class='username'>"
+item3.person_name+"</span><br><span style='color:red;' class='username'>时间: "
+ item3.today+" "+item3.times +"</span><br><span class='username'>电话:"
+item3.person_phone+"</span><br><span class='username'>身份证:"
+item3.card_id+"</span></li><hr>");
document.getElementById("sound").src="<%=basePath%>admin/media/global.wav";
setTimeout(function () {
var unique_id = $.gritter.add({
title: item3.person_name+"("+item2.location+")",
text:"<span class='username'>"+item3.person_name
+"</span><br><span style='color:red;' class='username'>时间: "
+ item3.today+" "+item3.times +"</span><br><span class='username'>电话:"
+item3.person_phone+"</span><br><span class='username'>身份证:"+item3.card_id+"</span>",
sticky: true,
time: '',
class_name: 'my-sticky-class'
});
setTimeout(function () {
$.gritter.remove(unique_id, {
fade: true,
speed: 'slow'
});
}, 12000);
}, 2000);
}
});
});
});
});
},2000); 
});

以上内容是小编给大家介绍的JS实时弹出新消息提示框并有提示音响起的实现代码,希望对大家有所帮助!

作者最新文章