前端报警信息的实现
作者:mobiledu2502872907 | 来源:互联网 | 2023-09-13 23:53
现在前台需要这样一个效果:当后台有错误信息时,前台显示如下:那个红色的点会不断地闪烁,如下:待用户点击故障报警后,弹出具体信息:待点击确定后如下过
现在前台需要这样一个效果:
当后台有错误信息时,前台显示如下:
故障报警
实现的逻辑是这样的:
1 首先检查是否有未查看的警告信息。
function checkData() {
$.ajax({
type : "get",
url : "HintCount",
success : function(data) {
$('#cc').html(data);
if (data != 0) {
document.getElementById('alert').style.display = "";
showImg();
} else {
document.getElementById('alert').style.display = "none";
}
}
});
return false;
}
HintCount从数据库中取出未读的消息数目。
如果存在未读的消息,就转到showImg();
2 showImg
var f;
function showImg() {
var s=document.getElementById('arert_img');
if (s.style.visibility == "visible")
//如果可见,则隐藏
s.style.visibility = "hidden";
else
s.style.visibility = "visible";
//设置图像可见
f = setTimeout('showImg()', 500);
//间隔的毫秒s
}
逻辑很清楚吧。关于这个f,到底有什么用,大家继续往后看。
3 点击故障报警
function showDetail() {
$('#alert_detail').window('open');
/* var s=$('#w');
alert(s); */
showdata();
setTimeout('changeStatus()', 500);
}
//把未读变成已读
function changeStatus() {
$.ajax({
type : "post",
url : "HintFlag",
success : function(data) {
}
});
return false;
}
function showdata() {
$('#dg').datagrid({
url : 'HintContent',
method : 'get',
title : '消息警报列表',
width : 700,
height : 250,
fitColumns : true,
singleSelect : true,
columns : [ [ {
field : 'id',
title : 'ID',
width : 100,
align : 'center'
}, {
field : 'date',
title : '消息时间',
width : 300,
align : 'center'
}, {
field : 'content',
title : '消息内容',
width : 400,
align : 'center'
}, ] ],
onHeaderContextMenu : function(e, field) {
e.preventDefault();
if (!cmenu) {
createColumnMenu();
}
cmenu.menu('show', {
left : e.pageX,
top : e.pageY
});
}
});
}
这里用到了easyui的相关组件。大家自己学习一下吧。
如果只是这样的话,即使查看了报警信息,红点依然在不断闪烁。为什么?
function showImg() {
var s=document.getElementById('arert_img');
if (s.style.visibility == "visible")
//如果可见,则隐藏
s.style.visibility = "hidden";
else
s.style.visibility = "visible";
//设置图像可见
f = setTimeout('showImg()', 500);
//间隔的毫秒s
}
showImg已经自成循环了。
怎么办?
在第一步checkData后就清除掉那个f。
现在大家知道定时器f的作用了吧。
function clear() {
clearTimeout(f);
checkData();
}
checkData();
setInterval('clear()', 3000);
ok,我们看看完整的代码
这个小模块,主要由西安电子科技大学计算机学院2014级研究生李健同学完成。特此说明。
前端报警信息的实现