diff --git a/static/index.html b/static/index.html index 01246398..bd30f83c 100644 --- a/static/index.html +++ b/static/index.html @@ -2201,7 +2201,7 @@ function renderResearch() { '' + '每版策略基于上一版归因分析迭代 · 点击行展开明细' + - '' + + '' + '
加载中...
' + '
' + '' + @@ -2262,7 +2262,11 @@ async function loadStrategyList() { const listEl = document.getElementById('strategyList'); // 2026-08-18 加载中提示(独立提示条,不破坏 strategyList 旧内容/滚动) const hintEl = document.getElementById('load-hint'); - if (hintEl) { hintEl.textContent = '⏳ 加载中...'; hintEl.classList.remove('hidden'); } + if (hintEl) { + hintEl.textContent = '⏳ 加载中...'; + hintEl.classList.remove('hidden'); + window._hintShownAt = Date.now(); // 记录显示时刻,保证最小可见时长 + } try { const ptMap = {'1m':'1m','6m':'6m','1y':'1y','2y':'2y','5y':'5y','10y':'10y'}; const pt = ptMap[window._btPeriodVal || document.getElementById('btPeriod')?.value || '2y'] || '2y'; @@ -2298,7 +2302,15 @@ async function loadStrategyList() { } } renderStrategyTable(strats); - if (hintEl) hintEl.classList.add('hidden'); + // 2026-08-18 最小显示400ms:即使fetch快也让用户看到加载提示 + if (hintEl) { + const waited = Date.now() - (window._hintShownAt || 0); + if (waited < 400) { + setTimeout(() => hintEl.classList.add('hidden'), 400 - waited); + } else { + hintEl.classList.add('hidden'); + } + } } catch(e) { listEl.innerHTML = '
加载失败: ' + e.message + '
'; if (hintEl) { hintEl.textContent = '⚠️ 加载失败'; hintEl.classList.remove('hidden'); }