Добрый день, делаю запросы серверу он отвечает в формате json, (значение температуры и статус(норма/авария)).
Далее это отображаю в div (на картинке svg)
И в случае аварии надо сделать мигание текста.
Так как про объекты и классы мало что знаю код получился такой:
GetSettingTimeout3('GetVar.CGI',CYCLIC,function () {
var objJSON = eval('(' + this + ')');
var TempHot = document.getElementById("IdT_Hot");
var TextStatusT_Hot = document.getElementById("Id_StatusT_Hot");
//--------------------------------------------------------------------------------------
TempHot.innerHTML="Т горячая="+objJSON.T_Hot+" \u2103";
//--------------------------------------------------------------------------------------
clearInterval(TimerID_blink[0]);
if(objJSON.T_ST_Hot==0){ //Статус температуры
TempHot.setAttribute("fill",RGB_STATUS_NORM); //зеленый
TextStatusT_Hot.setAttribute("fill",RGB_STATUS_NORM); //зеленый
TextStatusT_Hot.innerHTML="Норма";
}
if(objJSON.T_ST_Hot==1){ //Статус температуры
TempHot.setAttribute("fill",RGB_STATUS_ADMONITION); //желтый
TextStatusT_Hot.setAttribute("fill",RGB_STATUS_ADMONITION); //желтый
TextStatusT_Hot.innerHTML="Норма";
}
if(objJSON.T_ST_Hot==2){ //Статус температуры
TimerID_blink[0]=setInterval(TextBlink,300);
}
}
var ModeBlink=0;
function TextBlink(){
var TempHot = document.getElementById("IdT_Hot");
var TextStatusT_Hot = document.getElementById("Id_StatusT_Hot");
if(ModeBlink==0){
//-------------------------------
TempHot.innerHTML="Т горячая="+"80"+" \u2103";
TempHot.setAttribute("fill",RGB_STATUS_ERROR); //Красный
TextStatusT_Hot.setAttribute("fill",RGB_STATUS_ERROR); //Красный
TextStatusT_Hot.innerHTML="Авария";
//-------------------------------
ModeBlink=1;
}else{
//-------------------------------
TempHot.innerHTML=""
TextStatusT_Hot.innerHTML="";
//-------------------------------
ModeBlink=0;
}
}
И тут возникает 3 вопроса:
1) Во что это можно завернуть это всё что бы применить к другим принимаемым данным.
2) Правильно ли я использую setInterval ? (не будет ли происходит накопление, и в следствии чего при изменении статуса аварии в норму мигание не остановится)
3) Как сделать асинхронную функцию TextBlink. Что бы можно было использовать в остальных авариях. И мигание происходило везде по своему таймеру.
Ps: Всего параметров около 10, и для каждого городить такой код не вариант, так как сильно увеличится размер файла, что для меня очень критично.