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'); }