You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从零开始用JavaScript实现文件服务器实时监控指标

MDADM RAID状态监控网页问题解决

问题1:外部JS无法修改DOM元素

你的外部JS代码执行时,页面DOM还没完全加载完成,导致document.getElementById("raidstatus")找不到目标元素。解决方法是把DOM操作代码放在DOMContentLoaded事件回调中,确保页面元素渲染完成后再执行:

修改后的app.js相关代码:

'use strict';

// 等待DOM加载完成后执行操作
document.addEventListener('DOMContentLoaded', function() {
    // 测试代码,确认DOM操作生效
    document.getElementById("raidstatus").innerHTML = "测试文本";
});

问题2:动态读取RAID状态文件并实时更新

你需要实现定时请求服务器上的raidstatus.txt文件,并将内容更新到页面中。可以使用setInterval设置定时任务,配合fetch(更现代)实现数据请求:

完整修改后的app.js

'use strict';

// 等待DOM加载完成
document.addEventListener('DOMContentLoaded', function() {
    // 初始化时先读取一次状态
    loadRaidStatus();
    // 每分钟更新一次(和cron任务频率同步)
    setInterval(loadRaidStatus, 60000);
});

function loadRaidStatus() {
    // 使用fetch API读取文件
    fetch('raidstatus.txt')
        .then(response => {
            if (!response.ok) {
                throw new Error('无法获取RAID状态');
            }
            return response.text();
        })
        .then(text => {
            // 将文本内容更新到页面,保留格式用<pre>包裹
            document.getElementById("raidstatus").innerHTML = `<pre>${text}</pre>`;
        })
        .catch(error => {
            document.getElementById("raidstatus").innerHTML = `加载失败: ${error.message}`;
        });
}

其他代码修正

CSS文件

你的CSS末尾缺少闭合的},补充完整:

body {
    font-family: monospace;
}
ul {
    font-family: helvetica;
}
li {
    list-style: circle;
}
.list {
    list-style: square;
}  
#msg {
    font-family: monospace;
}
.dark-theme {
    --bg: var(--black);
    --fontColor: var(--green);
    --btnBg: var(--white);
    --btnFontColor: var(--black);
}
:root {
    --green: #00FF00;
    --white: #FFFFFF;
    --black: #000000;
}
body {
    background: var(--bg);
    color: var(--fontColor);
    font-family: helvetica;
} /* 补充这个闭合括号 */

额外注意事项

  • 确保raidstatus.txt文件放在网页根目录(或和HTML同目录),否则要修改fetch的路径
  • 如果遇到跨域问题,确保网页和文件在同一个域名下(本地开发或服务器部署时没问题)
  • 后续可以根据/proc/mdstat的内容,添加样式美化,比如高亮异常状态

内容的提问来源于stack exchange,提问作者Mason McGerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:46:07