如何检测某个变量在一段时间内是否没有变化?

时间:2019-01-31 02:14:44

标签: jquery html websocket

我想检测机器是否空闲15秒,是否显示弹出窗口。当数据来自服务器时,我的变量会进行数学计算并更改值。所以我想要的是,如果此变量在15秒钟的弹出窗口中没有变化。

我已经尝试过setTimeout。

            obj = JSON.parse(evt.data);

            if(obj.Addition=="0"){if(flag == 0){
               flag = 1;                    
               interval = setInterval(function(){
               $('div#popup2').show();
               }, 15000);                  
            }
            }

            else
            {
                clearInterval(interval);

                flag = 0;
            }

这种方式行不通,因为当Addition = 1时,它将进入else条件,但是当机器空闲时,没有数据来自服务器,因此从技术上讲,没有“ obj.Addition”,所以我想检查要更改的变量像smallCount一样。如果此变量递增,则会显示弹出窗口

1 个答案:

答案 0 :(得分:0)

我解决它通过下一个条件清理掉的时间间隔相同的循环内,并且再次加入seInterval以及 这样,它会先clearoutInterval,然后重新设定间隔等

            if(obj.Addition=="0")
            {
                console.log(obj.Addition);
                clearInterval(interval);

                if(flag == 0){
                    flag = 1;                    
                interval = setInterval(function(){
                    $('div#popup2').show();

                }, 25000);                  
                }
            } 

            else 
            {
                console.log(obj.Addition);

                clearInterval(interval);
                interval = setInterval(function(){
                    $('div#popup2').show();

                }, 25000);       
                flag = 0;
            }