2017-01-26 3 views
2

Я работаю над электронным приложением (впервые используя электрон). Я также очень новичок в javascript, поэтому, пожалуйста, извините мою глупость.Могу ли я продлить часть JS?

В index.js файл у меня есть этот метод, чтобы проверить, если сетевое соединение существует и обновить DIV элемент accordingly-

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"); 
    } 
} 

Я хочу, чтобы это постоянно и, как только бежать как пользователь отсоединяется от интернет, измените текст на «Не подключен»

Я попытался использовать прослушиватель событий onkeypress в моем файле index.html, но не смог заставить его работать.

Также мне интересно, есть ли лучший способ достичь этой цели, чем прослушиватель событий.

ответ

1

Конкретный случай, вы спрашивали о том, можно решить, как @juvian сказал (обработка событий, предусмотренных).

Более общий случай «как я могу сделать запуск кода непрерывно» можно обрабатывать с помощью setTimeout или setInterval.

Использование функции таким образом, было бы установить интервал стрелять сказать каждые полсекунды (единица в мс):

setInterval(checkStatus, 500);

setTimeout работает точно так же, за исключением того, что вместо непрерывного обжига каждые x секунд, он срабатывает один раз после x секунд. Еще очень полезно для, например, что вы можете установить новый тайм-аут каждый раз, когда срабатывает опрос, который имеет тонкое, но важное отличие от setInterval, что он будет через x секунд после завершения запроса, вместо того, чтобы стрелять в x секунд, независимо от того, сколько времени занимает запрос , Выполнение опроса с помощью setInterval может привести к конфликту ресурсов.

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"); 
});