javascript - 每 X 秒检查一次 URL 状态会不会有任何问题?
问题描述
所以我们有一个逻辑,我们将每 15 秒检查一次 URL 的状态,如下所示:
const http = new XMLHttpRequest();
const alive = (url) => {
http.open("HEAD", url, false);
http.send();
return http.status !== 404;
};
此 url 计划仅在一天中的某个时间工作一段时间,我们的应用程序必须检测它何时返回200
。完成后,我们将显示一个包含url
内容的 iframe(并清除间隔)。因此,只要它仍然返回 a 404
,我们就会显示一个“即将到来的”图像。
继续做这个检查可以吗?我们不会在某个时候在 url 上遇到太多请求错误吗?意识到我们可能无法控制该 url 的服务器。假设大约 1000 人将访问进行检查的页面。他们中的一些人可能会更早地访问该页面并留在那里。该页面将每 15 秒开始执行此检查,直到该页面url
变为活动状态(这可能需要在它们登陆页面的那一刻之后数小时)。
解决方案
要确定某物是否还活着,您可能想要返回http.status === 200
。这意味着如果说存在内部服务器错误,例如错误 500,则假定它不存在。
对于轮询方法,如果您有很多用户,则任何间隔都可能过于频繁。
可扩展性的最佳选择是拥有一个基于套接字的通信系统。正如您所提到的,您正在使用 node.js。您可以考虑使用socket.io。当您“上线”时,您可以向所有连接的客户端发出一个事件。
推荐阅读
- python - 在 JupyterNotebook 中安装 pip 时出现“熊猫构建轮子失败”
- php - 如何在 PHP guzzle 中验证异步请求?
- c# - 如何在 C# 中使用指针来检索数据
- python - 如何去除低采样率加速度计的噪声
- mysql - 如何将 MySQL 查询结果导出到多个 `txt` 文件?
- postgresql - 如何将 ilike 百分号与会话变量一起使用
- acceleo - AcceleoCompiler 已弃用
- mysql - 构建时的语法错误/错误的 SQL 语法
- java - EMV - SELECT 没有得到 PDOL
- reactjs - 尝试使用 .map() 函数从 2 个不同的源呈现数据