gpt4 book ai didi

java - 检查网络连接是否已连接/断开

转载 作者:行者123 更新时间:2023-11-30 17:51:52 27 4
gpt4 key购买 nike

我正在使用 java/servlet 和前端 JSP 开发 Web 应用程序。

我的页面为用户显示一些信息。

是否有任何适当的方法来检查网络连接是否处于 Activity 状态(开/关)以及支持所有浏览器和设备的方法?

如果网络出现故障,我想使用适当的消息重定向到其他页面。

我读到过有关使用 navigator.onLine 的信息,但并非所有浏览器都支持它,有时它也会给出错误的结果。

最佳答案

在大多数浏览器中有一个用于此的 native 属性:navigator.onLine,但是目前这个实现因浏览器而异非常,因此很难使用在任何现实世界的情况下。

考虑到这一点,我使用以下 javascript 函数来检查我的页面是否已连接到网络。它非常简单,应该可以跨浏览器工作。它通过尝试从服务器加载图像并捕获发生的任何错误来工作:

var isOnline = true;

function onlineCheck(){
var testImg = new Image();
testImg.onerror = function(){
isOnline = false
alert("Web access is unavailable. Please check that you are connected to the internet.")
}
testImg.onload = function(){ isOnline = true; }
testImg.src = "https://www.google.ie/images/srpr/logo4w.png"; //replace this with an image on your site
}

最好将网站上的 testImg.src 更改为 1x1 像素的图像。这将更快地加载,因为与您的域的连接可能已经打开。我通常为此目的使用动态生成的图像,因为我发现实现几行代码比创建和上传真实图像更容易。以防万一您想尝试一下,我提供了用于制作 1x1 像素图像的 PHP 代码。您可以很容易地将其改编为 JSP:

        header(  "Content-type:  image/gif"); 
header("Cache-Control: no-cache");
header("Cache-Control: must-revalidate");
printf ("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",71,73,70,56,57,97,1,0,1,0,128,255,0,192,192,192,0,0,0,33,249,4,1,0,0,0,0,44,0,0,0,0,1,0,1,0,0,2,2,68,1,0,59);
exit();

关于java - 检查网络连接是否已连接/断开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853739/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com