📅  最后修改于: 2023-12-03 14:55:51.420000             🧑  作者: Mango
在开发 Web 应用程序时,有时需要检查计算机是否在线以确定程序行为。这可以通过 JavaScript 实现。本文将介绍几种不同的方法来检查计算机的在线状态。
在 JavaScript 中,可以使用 navigator.onLine 属性来判断计算机是否处于联网状态。该属性返回一个布尔值,表示计算机是否联网。Navigator 对象是 JavaScript 中的一个内置对象,用于表示用户代理(浏览器)的状态和身份信息。
以下是一个示例:
if (navigator.onLine) {
console.log("计算机在线");
} else {
console.log("计算机离线");
}
注意:该属性只能确定计算机是否已连接到网络,但不能确定计算机是否能够访问特定的 URL 或服务。
另一种检查计算机在线状态的方法是使用 AJAX。AJAX 可以发送异步 HTTP 请求,并检查响应代码以确定计算机是否在线。以下是一个基本的 AJAX 示例:
var xhr = new XMLHttpRequest();
xhr.open("HEAD", "/");
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
console.log("计算机在线");
} else {
console.log("计算机离线");
}
};
xhr.onerror = function() {
console.log("计算机离线");
};
xhr.send();
该示例创建一个 XMLHttpRequest 对象并打开一个 HEAD 请求。当请求成功返回时,检查状态代码以确定计算机是否在线。如果请求失败,则计算机处于离线状态。
还可以使用 ping 命令来检查计算机的在线状态。不过,由于 JavaScript 中没有直接执行操作系统命令的方法,因此需要使用服务器端脚本来实现。以下是一个 Node.js 脚本示例:
const { exec } = require("child_process");
exec("ping -c 1 google.com", (error, stdout, stderr) => {
if (error) {
console.log("计算机离线");
} else {
console.log("计算机在线");
}
});
该示例使用 Node.js 的 exec 函数来执行 ping 命令并检查结果。如果命令返回错误,则计算机处于离线状态。否则,计算机在线。
以上是三种常见的检查计算机在线状态的方法。需要注意的是,以上方法都只能确定计算机是否连接到网络,但不能确定计算机是否能够访问特定的 URL 或服务。如果要检查网络是否可用,最好使用实际的请求测试。