使用JavaScript检查互联网连接

问题描述 投票:1回答:2

问题

我想在WiFi关闭时显示警报[即没有网络连接]。在我的网页中,我有许多按钮,弹出窗口等。用户可以在离线时点击任何内容。但我想表明API调用是否失败。我可以在每次点击检查navigator.onLine。但我不想写多少函数调用或行。有没有办法通常使用jQuery,JS,Ajax?

“当用户操作导致呼叫失败时,应显示ALERT”

$.ajax一样有错误。它不应该与任何div / page绑定。

嗨,我尝试过以下方法:

navigator.onLine  // It works fine

我提到了下面提到的那个。但它不起作用。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script>     

我提到的链接

Detect that the Internet connection is offline?

Check Internet connectivity with jquery

还有一些。

有什么建议?

javascript jquery ajax
2个回答
2
投票

navigator.online检查是否有网络,不检查互联网。如果您连接到没有互联网的网络,它仍将返回true

您可以使用ajax请求检查您的域名

setInterval(function() {
  $.ajax({
    type: "HEAD",
    url: document.location.pathname + "?param=" + new Date(),
    error: function() {
      console.log(false);
    },
    success: function() {
      console.log(true);
    }
  });
}, 1000);

1
投票

您可以在这里使用本机setInterval函数。例如,在document.ready函数内部,或者在页面加载时早期加载的其他位置,使用设置间隔:

setInterval(callbackFunction:,1000/*<--run function every interval in ms*/);

并编写你的回调函数(可能在qazxsw poi之上),如:

setInteraval

如果你操纵DOM,请记住将它放在var callbackFunction = function(){ if (navigator.online){ //manipulate the DOM } }; 函数中,并且如果在document.ready()调用之外定义的回调函数可能应该首先声明。

© www.soinside.com 2019 - 2024. All rights reserved.