前端报警信息的实现
来源:互联网 发布:网络建设合同 编辑:程序博客网 时间:2024/05/23 15:41
现在前台需要这样一个效果:
当后台有错误信息时,前台显示如下:
过一会,如果系统中又有新的,用户还没有检查的故障,红点就会出现并且继续闪烁。
前台主要的html
实现的逻辑是这样的:
1 首先检查是否有未查看的警告信息。
如果存在未读的消息,就转到showImg();
2 showImg
3 点击故障报警
如果只是这样的话,即使查看了报警信息,红点依然在不断闪烁。为什么?
怎么办?
在第一步checkData后就清除掉那个f。
现在大家知道定时器f的作用了吧。
这个小模块,主要由西安电子科技大学计算机学院2014级研究生李健同学完成。特此说明。
当后台有错误信息时,前台显示如下:
那个红色的点会不断地闪烁,如下:
待用户点击故障报警后,弹出具体信息:
待点击确定后 如下
过一会,如果系统中又有新的,用户还没有检查的故障,红点就会出现并且继续闪烁。
前台主要的html
<div class="user"> <span id="alert"> <a onclick="showDetail()" id="arert_img"> <img border="0" style="padding-top: 5px;" src="images/th.png" /> </a> <a href="#" id="editpass" onclick="showDetail()" style="color: #B8CEDA; font-size: 14px;">故障报警 </a> </span> <div id="alert_detail" class="easyui-dialog" title="消息警报" data-options="modal:true,closed:true,iconCls:'icon-save'" style="width: 750px; height: 360px; padding: 10px;"> <p>请查看以下警告!</p> <table id="dg"></table> <div style="text-align: center; padding: 10px"> <a href="javascript:void(0)" class="easyui-linkbutton" onclick="$('#alert_detail').window('close');">确定</a> </div> </div> </div>
实现的逻辑是这样的:
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,我们看看完整的代码
<script type="text/javascript"> 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; } 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 } //查看数据库中是否有为读数据 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; } 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 }); } }); } function clear() { clearTimeout(f); checkData(); } checkData(); setInterval('clear()', 3000); //setInterval('showdata()',3000); </script>
这个小模块,主要由西安电子科技大学计算机学院2014级研究生李健同学完成。特此说明。
0 0
- 前端报警信息的实现
- 关于语音报警的实现
- wechat 报警的实现方法
- java错误报警机制的实现
- aix清除报警信息
- 报警信息图形定位
- EDAC_MC模块大量输出报警信息的临时解决办法
- Oracle BAM发送报警信息超长的解决方法
- Jmeter运行报警告信息
- Cacti实现MSN报警
- sendEmail实现邮件报警
- python 实现邮件报警
- 用java实现的一个简单的定时报警程序
- mysql 存储过程实现历史报警信息去重(只粘贴代码,不解释了)
- mysql 存储过程实现历史报警信息去重(只粘贴代码,不解释了)
- 海康威视NVR获取网络摄像头报警信息 C++ 实现
- CACTI实现短信报警的三种方法
- CACTI实现短信报警的三种方法
- 打印机共通知识
- STL系列之一_简介
- Visual C++中的AFX前缀
- 就是这样
- 让LinearLayout中的控件可以右对齐
- 前端报警信息的实现
- Excel
- 第八周项目一(3):实现复数类中的运算符重载:定义完整的类
- 通讯协议的选择,TCP or UDP
- android应用程序的混淆打包(转)
- 网格布局管理器
- 用Quick-Cocos2d-x 3.3简单开发微信打飞机 -01
- IOS 推送
- cocos2dx 3.4 杂项