2014-01-27 4 views
-1

Есть ли способ проверить подключение к Интернету с использованием чистого JavaScript, не запрашивая что-то из Интернета? Я пытался использоватьПроверка подключения к Интернету с помощью JavaScript

alert(navigator.onLine); 

, но она всегда возвращает true.

Спасибо!

+0

onLine предпочитает только проверить, находится ли браузер в автономном режиме или нет. Я думаю, что вам нужно будет выполнить веб-запрос, чтобы узнать, находится ли компьютер в сети или нет – bvx89

ответ

1

В зависимости от того, что вы пытаетесь достичь, это может быть потерянной причиной. Наличие подключения к Интернету 1 секунда не означает, что у вас будет следующий (подумайте о мобильных, пятнистых сетях, потерянных пакетах, туннелях, перегруженных конференциях/аэропортах Wii и т. Д.)

Вам лучше сделать асинхронный запрос для ресурс, который вы хотите ... если он будет работать ... Giddy Up! ... если он терпит неудачу или истечет время, то справитесь с этим сценарием.

0

пожалуйста, попробуйте следующий код и обновление, если он работает

function hostReachable() { 


    var xhr = new (window.ActiveXObject || XMLHttpRequest)("Microsoft.XMLHTTP"); 
    var status; 

    xhr.open("HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false); 


    try { 
    xhr.send(); 
    return (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304); 
    } catch (error) { 
    return false; 
    } 

} 
1

navigator.onLine проверяет, находятся ли вы в сети или в автономном режиме, он возвращает значение true, если вы в сети, что похоже на то, что у вас есть активное подключение к Интернету. она возвращает ложь, если вы не в сети, который подобен тому, у вас нет активного подключения к Интернету

так что вы можете сделать что-то вроде этого ниже, если ваше приложение должно обнаружить соединение:

if(navigator.onLine) { //do something }

Смежные вопросы