Javascript 检查internet连接的最佳方法是什么

Javascript 检查internet连接的最佳方法是什么,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我制作了一个CMS,在操作过程中会提取大量数据。 CMS是用PHP、MySQL、jQuery、Bootstrap和AJAX制作的 问题是,如果您失去internet连接,可能会导致显示和滚动出现问题 我想如果有一个很好的方式来显示错误,并阻止在没有互联网连接的网站上的所有功能。当建立连接时,现场应允许所有功能 谢谢 (对不起,我的英语不好。)如果您已经在使用jQuery,您可以创建一个对服务器的简单ajax调用,如果它在几秒钟内失败,那么您的服务器或客户端的internet连接就会断开 大概是这

我制作了一个CMS,在操作过程中会提取大量数据。 CMS是用PHP、MySQL、jQuery、Bootstrap和AJAX制作的

问题是,如果您失去internet连接,可能会导致显示和滚动出现问题

我想如果有一个很好的方式来显示错误,并阻止在没有互联网连接的网站上的所有功能。当建立连接时,现场应允许所有功能

谢谢


(对不起,我的英语不好。)

如果您已经在使用jQuery,您可以创建一个对服务器的简单ajax调用,如果它在几秒钟内失败,那么您的服务器或客户端的internet连接就会断开

大概是这样的:

setInterval(function() {
  $.ajax({
    url: "https://cms.example.com/ping",
  })
  .fail(function( data ) {
    alert('Connection lost?');
    // remember do to something smart which shows the error just once
    // instead of every five seconds. Increasing the interval every 
    // time it fails seems a good start.
  });
}, 5*1000);

如果您使用的是jQuery,则可以在发生错误时挂接并锁定应用程序。锁定屏幕可以简单地要求重试

$( document ).ajaxError(function() {
  // lock your UI here
});
此外,一旦用户界面被锁定,您可以执行一项功能,以某种方式ping服务器,并在网络恢复时自动解锁应用程序

使用jQuery的插件可以轻松锁定应用程序

例子
注意:您可能不希望在网络出现故障时无限期地重试您的请求,而是希望在某个时候退出重试。既然这超出了这个问题的范围,我就不提了。不过,您可以看一下,这可能有助于您理清这一部分。

编辑:重新阅读您的问题,并误解了我的第一次经历,因此这对持续监控无效。。。但无论如何我都会把它留在这里,因为它可能对其他人有用

我建议加载一个小js文件,将一个类添加到页面的元素中,然后检查该类是否在事件发生后应用。。。假设您使用的是jQuery

在jQuery之后,通过脚本标记将远程服务器上的文件加载到页面中

$('html').addClass('connected');
地方代码

if($('html').hasClass('connected')) {
    // connected
} else {
    // not connected
}

用户连接到服务器?服务器与其他服务器的连接?服务器连接到特定的服务器(数据库,邮件)?你抢先到了+1给出一个完整的答案=)我不会在这里使用
setInterval
,而是
setTimeout
。此外,您可能会遇到的潜在问题是,如果一个请求占用的时间超过5秒(是的,在大型应用程序中很容易发生这种情况!例如,当服务器非常忙并且无法在您限定的时间范围内响应时),那么您的
警报将毫无理由地触发。我对jQuery不是很在行,我知道基本知识,我还在学习,但我认为这是一个很好的解决方案,但它应该以某种方式设置计数器,使其仅在页面加载时激活。我喜欢Gmail在没有互联网连接时的显示方式,我也会这样做。我尝试过这个,我们会看到的。非常感谢。
if($('html').hasClass('connected')) {
    // connected
} else {
    // not connected
}