统计接口返回 502 时图表区域变成一块纯白,没有任何提示,用户以为是自己筛选条件写错了。乍看像缓存或者权限的锅,追下去往往不是。

catch (e) {
  el.innerHTML = '<button class=retry>加载失败 点击重试</button>';
}

追下去是这么回事:请求失败走了 catch 分支只打了 console,没有更新界面状态。图表容器保持上一次的空白画布。

「图表接口失败兜底」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

具体做法是,失败时在容器里显示提示和重试按钮;保留上一次成功的数据并标注时间;重试成功后清掉提示再重绘。

验收就看一点,断网后刷新,图表区显示加载失败和重试按钮,点一下能恢复。

作者 9823189