我正在开发电子应用程序(第一次使用电子)。我对javascript也很新,所以请原谅我的愚蠢。
在index.js文件中我有这个方法来检查网络连接是否存在并相应地更新div元素 -
function checkStatus() {
var online = navigator.onLine;
if(online){
$(".net-status").html("<i class=\"fa fa-globe fa-2x\"></i> Connected");
}
else{
$(".net-status").html("<i class=\"fa fa-globe fa-2x\"></i> Not Connected");
}
}
我想让它连续运行,一旦用户断开互联网连接,将文本更改为&#34;未连接&#34;
我尝试在index.html文件中使用onkeypress事件监听器,但无法使其工作。
此外,我想知道是否有比事件监听器更好的方法来实现此目的。
答案 0 :(得分:3)
当变量发生变化时,有一些事件监听器可以触发
window.addEventListener("offline", function(e) {
$(".net-status").html("<i class=\"fa fa-globe fa-2x\"></i> Not Connected");
});
window.addEventListener("online", function(e) {
$(".net-status").html("<i class=\"fa fa-globe fa-2x\"></i> Connected");
});
答案 1 :(得分:1)
你问的具体案例可以解决,因为@juvian说(处理所提供的事件)。
更一般的情况&#34;如何让代码连续运行&#34;可以使用setTimeout
或setInterval
来处理。
以这种方式使用你的函数就是设置一个间隔来表示每半秒钟一次(单位为毫秒):
setInterval(checkStatus, 500);
setTimeout
以相同的方式工作,除了不是每隔x秒连续发射一次,它会在x秒后触发一次。对于例如仍然非常有用轮询操作,因为你可以在每次轮询开始时设置一个新的超时,这与setInterval有微妙但重要的区别,即在请求完成后x秒,而不是在请求需要多长时间时触发x秒。使用setInterval进行轮询可能会导致资源争用。