Internet bağlantınızı kontrol eden (iyi çalışıyor) ve her 20 saniyede bir sayfayı yenileyen bir işlev üzerinde çalışıyorum. Üzerinde çalıştığım diğer bir işlev, internet durumunun ne zaman değiştiğini ve yenileme işlevini durdurduğunu algılar. Çalışmaya çalışıyorum, böylece internet tekrar çevrimiçi olduğunda, yenileme fonksiyonu tekrar başlar. Birden çok düzeltmeyi denedim ama hiçbir şey çalışmıyor. internet bağlantısı sonra yenileme fonksiyonunun yeniden başlamazsa, çevrimiçi dönene kadarJavascript - Bir işlevden clearInterval kullandıktan sonra setInterval'ı yeniden etkinleştirme
function checkNetConnection()
{
var xhr = new XMLHttpRequest();
var file = "http://i.imgur.com/FIKb6D8.png";
var r = Math.round(Math.random() * 10000);
xhr.open('HEAD', file + "?rand=" + r, false);
try {
xhr.send();
if (xhr.status >= 200 && xhr.status < 304) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
function modalCheck()
{
var status = checkNetConnection();
if(status == false) {
document.getElementById('mymodal').style.display = "block";
} else {
document.getElementById('mymodal').style.display = "none";
}
}
var int1 = setInterval(modalCheck, 7000);
function refreshPage()
{
var state = checkNetConnection();
if(state == false)
{
clearInterval(int2);
} else {
location.reload(true);
alert("PAGE RELOADED!"); /* Testing purposes! */
}
}
var int2 = setInterval(refresh, 12000);
Her şey iyi çalışır:
İşte bazı kod. Bu düzeltmeye çalıştığım şey.
Teşekkürler.
Olası yinelenen [Yanıtı eşzamansız bir çağrıdan nasıl geri verebilirim?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous- ara) –