使用jquery mobile每分钟检查设备互联网连接

时间:2015-06-16 10:09:54

标签: javascript jquery ajax jquery-mobile

每分钟页面都会检查Internet连接。但是,当设备上关闭wifi时,页面将重定向到no_internet.hmtl页面。每次打开/关闭wifi按钮时,我们如何检查互联网连接应该重定向到no_internet.html

$(document).on('pagebeforecreate', '[data-role="page"]', function(){      //loading spinner

    setInterval(
        function(){


          if(window.navigator.onLine){ 

            }else {

                 window.location='./no_internet.html';

                 return false;

            }

     }, 1000);

        setTimeout(function(){

         $.mobile.loading('show', {
        text: 'Chargement en cours...',
        textVisible: true,
        theme: 'a',
        html: "<span class='ui-bar ui-overlay-c ui-corner-all' ><img width='50px' height='50px' src='http://www.shougun.it/images/loading.gif' /><br><h2>Chargement en cours...</h2></span>"
    });
        },5);    

    });

1 个答案:

答案 0 :(得分:0)

  var interval=setInterval(function(){ 
        connectionExist(); // function returns a true if an internet connection exists
    }, 1000);

    function connectionExist() {
        var xhr = new XMLHttpRequest();
        var file = "http://localhost:50041/stackflow/icon1.png"; //URL we specify is the path to the file that we want to check on
        var randomNum = Math.round(Math.random() * 10000);

        xhr.open('HEAD', file + "?rand=" + randomNum, false);

        try {
            xhr.send();

            if (xhr.status >= 200 && xhr.status < 304) {
                console.log('Connected');
                return true;
            } else {
                console.log('Connection Exist');
                clearInterval(interval);
                window.location.href = "http://localhost:50041/stackflow/noInternet.html";
                return false;
            }
        } catch (e) {
            return false;
        }
    }