一段javascript告警回放代码
2016-07-27 14:14
579 查看
/** * 描述 : * 这里是实现播放,快进等功能的js文件 * * */ var replaySpeed = 1000 * 5;//播放速度 50秒 var alarmReplayTimer = null; // 定义播放定期器 var alarmBackUpTimer = null; // 定义回退播放器 var flag = false; // 播放开关 //向前播放的action地址 var alarmForwardUrl = getRootPath() + "/web/alarm/alarmReplayController/alarmForward.do"; //向后播放的action地址 var alarmBackupUrl = getRootPath() + "/web/alarm/alarmReplayController/alarmBackup.do"; var startOrPause = function() { // (开始/暂停 ) 播放 //修改 开始/暂停 播放 按钮的值 var startOrPauseButton = document.getElementById("startOrPause"); var startOrPauseButtonValue = startOrPauseButton.innerHTML; if (startOrPauseButtonValue == "开始") { updateTime(); startOrPauseButton.innerHTML = "暂停"; } else { startOrPauseButton.innerHTML = "开始"; } //开始播放或暂停播放 if (!flag) { // 未启动 flag = true; alarmReplayTimer = setInterval("forward()", replaySpeed); //定时器定时刷新 } else { // 已启动 flag = false; clearTimer();//停止播放 } } var forward = function() { // 向前 var currentTime = document.getElementById("currentTime").value; var currentEndTime = document.getElementById("currentEndTime").value; var compareDate = isBigger(currentTime,currentEndTime); if(compareDate==0){ $.ajax( { url:alarmForwardUrl, data:{ currentTime:currentTime, currentEndTime:currentEndTime }, type:'post', cache:false, dataType:'json', success:function(data) { var time = data[0]; var alarmList = data[1]; //告警对象集合 initTableHtml(alarmList); // console.info(alarmList); if(time!=null){ document.getElementById("currentTime").value = time; }else{ document.getElementById("currentTime").value = document.getElementById("currentEndTime").value; } // $("#alarmRelay").html(tableContent); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("播放异常"); }, }) }else if(compareDate==1){ alert("播放完成"); clearTimer(); }else if(compareDate == null){ alert("播放异常"); } } var stop = function(){ // 停止 clearTimer(); } var backward = function() { // 向后 var currentTime = document.getElementById("currentTime").value; var currentStartTime = document.getElementById("currentStartTime").value; var compareDate = isBigger(currentStartTime,currentTime); if(compareDate==0){ $.ajax( { url:alarmBackupUrl, data:{ currentTime:currentTime, currentStartTime:currentStartTime }, type:'post', cache:false, dataType:'json', success:function(data) { var time = data[0]; var alarmList = data[1]; //告警对象集合 initTableHtml(alarmList); if(time!=null){ document.getElementById("currentTime").value = time; }else{ document.getElementById("currentTime").value = document.getElementById("currentStartTime").value; } // document.getElementById("currentTime").value = time; // $("#alarmRelay").html(tableContent); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("播放异常"); }, }) }else if(compareDate==1){ alert("播放完成"); clearTimer(); }else if(compareDate == null){ alert("播放异常"); } } var lastTime = function() { // 上一次 clearTimer(); backward(); } var nextTime = function() { // 下一次 clearTimer(); forward(); } var clearAlarmReplayTimer = function(){ // 清除向前定时器 if(alarmReplayTimer!=null){ clearTimeout(alarmReplayTimer); //清除下一次播放定时器 alarmReplayTimer = null; } } var clearAlarmBackUpTimer = function(){ // 清除向后定时器 if(alarmBackUpTimer!=null){ clearTimeout(alarmBackUpTimer); //清除上一次播放定时器 alarmBackUpTimer = null; } } var backSpace = function() { // 回退 // speedUp(); clearTimer(); alarmBackUpTimer = setInterval("backward()", replaySpeed); //定时器定时刷新 } var fastForward = function() { // 快进 // speedUp(); clearTimer(); alarmReplayTimer = setInterval("forward()", replaySpeed); //定时器定时刷新 } var clearTimer = function() { // 清除定时器 clearAlarmReplayTimer(); clearAlarmBackUpTimer(); document.getElementById("startOrPause").innerHTML = "开始"; } var speedUp = function(){ //加速 if(replaySpeed == 1000 * 5){ replaySpeed = 1000 * 3; }else if(replaySpeed == 1000 * 3){ replaySpeed = 1000 * 1; }else if(replaySpeed == 1000 * 1){ replaySpeed = 100 * 5; }else if(replaySpeed == 100 * 5){ replaySpeed = 100 * 3; }else if(replaySpeed == 100 * 3){ replaySpeed = 100 * 1; } } var assignSpeed = function(){ //指定速度倍数 //指定倍数 var assignSpeedSelect = document.getElementById("assignSpeedSelect").value; if(assignSpeedSelect == "1"){ replaySpeed = 1000 * 5; }else if(assignSpeedSelect == "2"){ replaySpeed = 1000 * 3; }else if(assignSpeedSelect == "5"){ replaySpeed = 1000 * 1; }else if(assignSpeedSelect == "10"){ replaySpeed = 100 * 5; }else if(assignSpeedSelect == "20"){ replaySpeed = 100 * 3; }else if(assignSpeedSelect == "50"){ replaySpeed = 100 * 1; } //重启定时器 if(alarmReplayTimer!=null){ clearAlarmReplayTimer(); alarmReplayTimer = setInterval("forward()", replaySpeed); //定时器定时刷新 } if(alarmBackUpTimer!=null){ clearAlarmBackUpTimer(); alarmBackUpTimer = setInterval("backward()", replaySpeed); //定时器定时刷新 } } function getRootPath() { //得到项目路径 var strFullPath = window.document.location.href; var strPath = window.document.location.pathname; var pos = strFullPath.indexOf(strPath); var prePath = strFullPath.substring(0, pos); var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1); var rootPath = prePath + postPath; return (rootPath); } $(window).load(function() { (function($){ $(document).ready(function(){ jeDate({ dateCell:'#currentStartTime', format:'YYYY-MM-DD hh:mm:ss', isTime:true, minDate:'2014-09-19 00:00:00' }), jeDate({ dateCell:'#currentEndTime', format:'YYYY-MM-DD hh:mm:ss', isTime:true, minDate:'2014-09-19 00:00:00' }) }); })(jQuery); }) var updateTime = function(){ var currentStartTime = document.getElementById("currentStartTime"); var currentTime = document.getElementById("currentTime"); currentTime.value = currentStartTime.value; } /*表格内容*/ function initTableHtml(arr){ if(arr==null) return ; console.info(arr); var str = '',strNull = '<td><div></div></td>'; var getRowHtml = function(alarmList){ var subs = ''; subs += '<td player="first"><div><input type="checkbox" class="select" value="'+ alarmList.deviceId +'"</div></td>'; if(alarmList.alarmLevel) subs += '<td><div>' + alarmList.alarmLevel + '</div></td>';else subs += strNull; if(alarmList.alarmType) subs += '<td><div>' + alarmList.alarmType + '</div></td>';else subs += strNull; if(alarmList.deviceName) subs += '<td><div>' + alarmList.deviceName + '</div></td>';else subs += strNull; if(alarmList.ip) subs += '<td><div>' + alarmList.ip + '</div></td>';else subs += strNull; if(alarmList.area) subs += '<td><div>' + alarmList.area + '</div></td>';else subs += strNull; if(alarmList.ceateTime) subs += '<td><div>' + getLocalTime(alarmList.ceateTime)+ '</div></td>';else subs += strNull; if(alarmList.lastUpdateTime) subs += '<td><div>' + getLocalTime(alarmList.lastUpdateTime) + '</div></td>';else subs += strNull; if(alarmList.alarmNumber) subs += '<td><div>' + alarmList.alarmNumber + '</div></td>';else subs += strNull; if(alarmList.status) subs += '<td><div>' + alarmList.status + '</div></td>';else subs += strNull; return subs; }; var len = arr.length; for(var i=0;i<len;i++){ str += '<tr class="id'+ arr[i].deviceId +'">'; str += getRowHtml(arr[i]); str += '</tr>'; } var stationContent = document.querySelector(".stationContent"); stationContent.innerHTML = str; document.querySelector(".selectAll").checked = false; //取消表头的多 } function getLocalTime(nS) { return new Date(nS).Format("yyyy-MM-dd HH:mm:ss"); };
相关文章推荐
- assist_link.js a标签手机pc通用
- javascript中的变量命名规范
- JVM命令帮助
- boos直聘扫码直接登陆js代码
- jstl中fmt:formatDate的输出格式详解
- JS中误用/g导致的正则test()无法正确重复执行
- JavaScript基础——事件(基础)
- js for循环倒序输出数组元素
- JavaScript整理的一些使用的方法
- Gson解析Map格式json数据
- javascript事件处理
- Javascript常用代码
- 不再彷徨:完全弄懂JavaScript中的this
- JavaScript实现局部打印
- jsp page指令
- [php学习十一]javaScript的基本练习2
- 关于javascript中=的返回值
- 关于javascript中=的返回值
- js学习笔记
- js学习笔记