diff --git a/src/pages/LogsPage.tsx b/src/pages/LogsPage.tsx index 80821f5..61f6c29 100644 --- a/src/pages/LogsPage.tsx +++ b/src/pages/LogsPage.tsx @@ -400,6 +400,8 @@ export function LogsPage() { startY: number; fired: boolean; } | null>(null); + const logRequestInFlightRef = useRef(false); + const pendingFullReloadRef = useRef(false); // 保存最新时间戳用于增量获取 const latestTimestampRef = useRef(0); @@ -424,6 +426,15 @@ export function LogsPage() { return; } + if (logRequestInFlightRef.current) { + if (!incremental) { + pendingFullReloadRef.current = true; + } + return; + } + + logRequestInFlightRef.current = true; + if (!incremental) { setLoading(true); } @@ -474,6 +485,11 @@ export function LogsPage() { if (!incremental) { setLoading(false); } + logRequestInFlightRef.current = false; + if (pendingFullReloadRef.current) { + pendingFullReloadRef.current = false; + void loadLogs(false); + } } };