WebSocket 实时推送
WebSocket 建立一次握手后保持永久连接,直到主动关闭。它支持客户端与服务端的双向通信,服务端有新数据时立刻推给前端,实现真正的实时刷新。
// 连接 WebSocket
const ws = new WebSocket('ws://localhost:8080/ws');
// 收到服务端推送的新数据,自动刷新页面
ws.onmessage = (e) => {
const newData = JSON.parse(e.data);
renderPage(newData);
};
// 发生错误/关闭处理
ws.onerror = () => {};
ws.onclose = () => {};
轮询方案对比
定时轮询(setInterval)
这是最基础的方案,通过定时器每隔一段时间向服务器发送请求。虽然简单,但如果接口耗时超过定时时间,会导致多个请求堆积,阻塞主线程或造成服务器压力。
// 1. 定义数据请求函数
async function fetchData() {
try {
const res = await fetch('/api/your-data-endpoint');
const data = await res.json();
updateUI(data); // 更新页面
} catch (err) {
console.error('请求数据失败:', err);
}
}
// 2. 设置定时器,每 3 秒请求一次
const intervalId = setInterval(fetchData, 3000);
() {
(intervalId);
}


