如何检测机器是不是空闲,15 秒内没有来自服务器的值?

Posted

技术标签:

【中文标题】如何检测机器是不是空闲,15 秒内没有来自服务器的值?【英文标题】:How to detect if the machine is idle, no values coming from the server for 15s?如何检测机器是否空闲,15 秒内没有来自服务器的值? 【发布时间】:2019-01-29 05:09:22 【问题描述】:

我有 websocket 客户端和服务器。我想从客户端(客户端使用 jQuery)检测机器是否空闲 15 秒(因为没有来自服务器的数据)。如果没有数据出现,我想弹出。它应该再次检查 15 秒,依此类推。

我用过'setTimeout'

setTimeout(function() 
    if (data == 0) 
        $('div#popup2').show()
    
, 15000);

但这只会在它们为 0 时触发,如果数据 ==1 并且机器处于空闲状态,它不会在 15 秒内显示弹出窗口。

【问题讨论】:

【参考方案1】:

您可以在其他情况下使用clearTimeout,如下所示。

var data = 0; // Change value to 1 if you want to see change. 
var tID;
$('#popup2').hide();
$('#popup1').hide();
if (data == 0)
  tID = setTimeout(function() 
    $("div#popup2").show()
  , 1500);
else 
  clearTimeout(tID); // Else condition goes here whatever you want to do
  $("div#popup1").show();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <div id='popup2'>Your Pop UP</div>
</div>
<div id='popup1'>Show Test Div</div>

【讨论】:

以上是关于如何检测机器是不是空闲,15 秒内没有来自服务器的值?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Flink CEP如何检测事件是不是在x秒内没有发生?

无法在 45 秒内启动意图。也许主线程在合理的时间内没有空闲?

如何阻止机器人和垃圾邮件提交评论?

检查linux机器是不是空闲

如何评估无监督异常检测

C# IRC 和 Twitch 空闲断开连接?