/*带参数的定时器触发调用函数*/
function bindInterval(funcName){
var args=[];
for(var i=1;i<arguments.length;i++){
args.push(arguments[i]);
}
return function(){
funcName.apply(this,args);
}
}
调用方式可参照下面:
//定义全局变量
var global_timer_array = new Array();
global_timer_array[deviceId]=setInterval(bindInterval(queryDeviceCommandRate,deviceId), 2000);
//获取设备命令执行状况
function queryDeviceCommandRate(deviceId){
$.ajax({
type : "POST",
data : "deviceId="+deviceId,
url : "${ctx}/device/commandHolder/queryDeviceCommandRate",
success : function(data) {
/* alert(JSON.stringify(data));
console.info(data); */
var status = data["status"];
var deviceId = data["deviceId"];
var message = data["message"];
var info = data["info"];
if(status == "done" || status == "error" || status == "exception"){
clearInterval(global_timer_array[deviceId]);
insertMsgAck(deviceId,message.fontcolor('#00FF00'));
if(info != null){
/*此处应先判断info是否为json对象,是:则返回结果信息 ; 否:则返回的错误信息,不能当json处理*/
if (isJSON(info)){
var msg = "";
info = JSON.parse(info);
for(var name in info){
var value = info[name];
msg += "<font size='3' color='#FF0000'>" + name + " : " + value + "</font><br>";
}
var li = $("<li>[设备编号:" + deviceId +"] : <br>" + msg + "</li>");
$("#messageList").prepend(li);
}else{
insertMsgAck(deviceId,info.fontcolor('#FF0000'));
}
}
} else if(status == 'doing' || status == 'undo' || status == 'wait'){
if(info != null) {
insertMsgAck(deviceId,info);
}
insertMsgAck(deviceId,message.fontcolor('#1E90FF'));
}else{
clearInterval(global_timer_array[deviceId]);
insertMsgAck(deviceId,'系统返回消息状态出错!!'.fontcolor("red"));
}
}
});
}
//判断一个字符串是否为JSON格式
function isJSON(str){
if(typeof str == 'string'){
try{
var obj = JSON.parse(str);
if(typeof obj && obj){
return true;
}else{
return false;
}
}catch(e){
return false;
}
}
}
/*带参数的定时器触发调用函数*/
function bindInterval(funcName){
var args=[];
for(var i=1;i<arguments.length;i++){
args.push(arguments[i]);
}
return function(){
funcName.apply(this,args);
}
}
//往消息面板中添加命令执行信息
function insertMsgAck(deviceId, msgContent){
var list = $("#messageList");
if(deviceId.length > 7){
deviceId = deviceId.substring(0,3) + "***" + deviceId.substring(deviceId.length - 4,deviceId.length);
}
if (list[0].childNodes.length > 10){
//$("#messageList li:last").remove();
list.empty();
}
var li = $("<li>[设备编号:" + deviceId +"] : " + msgContent +"...</li>");
list.prepend(li);
}