javascript - 如何定期检查服务器是否在线而不用错误消息填充控制台日志?
问题描述
我对特定文件使用 ajax GET 请求,以检查服务器是否在线。当服务器不在线时,控制台日志中的每个文件请求都有一条错误消息(“net::ERR_CONNECTION_REFUSED”)。服务器位于本地网络上(地址为 10.0.0.xxx)。我的 JavaScript 代码每秒检查一次,因为我想立即知道服务器何时恢复在线。
解决方案
没有办法抑制这些错误,但是在您的情况下,您可以通过设置httpRequest.timeout
非常低的值(例如1000
(1 秒))来逃脱。它将在控制台中超时而不会出现错误。
[更新] 我不确定我的浏览器是否已更新(Edge 92.0.902.62),但我不再能够重现该错误:
!function loop()
{
const req = new XMLHttpRequest();
const callback = e =>
{
if (req.readyState != 4)
return;
const isOnline = req.status == 200;
console.log(isOnline ? "online" : "offline");
req.abort();
setTimeout(loop, isOnline ? 1000 : req.timeout);
}
req.onreadystatechange = callback
req.timeout = 500;
req.open('HEAD', 'http://localhost', true);
req.send();
}()
推荐阅读
- r - 如何在 R ggplot2 中绘制自定义数学方程
- linux - 如何在脚本中捕获正在运行的进程的 pid
- scala - 使用 rdbms 数据库中的连接来加载数据的方法应该是什么?
- c++ - C++ 使用 fork() 和 pipe() 并行运行 2 个程序并获取输入/输出
- angular - Angular中的文件输入事件类型
- javascript - 我想从 mat 复选框中选中的项目制作一个列表
- node.js - 如何使用扫描或任何 dynamodb 方法实现分页功能?
- php - 在配置文件中声明的数组不反映在 Laravel 中 config:clear 之后的更改
- .net-core - kafka 服务器重新启动后丢失未处理的消息
- sql - 从员工表中查找工资总和