From 3d88fb5548bedd850b5cde4b96a99065a78802d0 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 24 Jun 2026 16:50:58 +0800 Subject: [PATCH] fix: EchartsExt auto-refresh stops when widget leaves DOM (is_in_dom check) --- bricks/echartsext.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bricks/echartsext.js b/bricks/echartsext.js index 77ac65f..67d9188 100644 --- a/bricks/echartsext.js +++ b/bricks/echartsext.js @@ -47,6 +47,11 @@ bricks.EchartsExt = class extends bricks.VBox { if (this._refresh_timer) return; // 防止重复启动 const doRefresh = () => { + if (!this.is_in_dom()) { + console.log('EchartsExt: widget not in DOM, stop auto-refresh'); + this._refresh_timer = null; + return; + } this.render_urldata().then(() => { // 继续下一轮 if (this._refresh_timer) { // 检查是否已被取消 @@ -54,7 +59,11 @@ bricks.EchartsExt = class extends bricks.VBox { } }).catch(err => { console.error('Auto-refresh failed:', err); - this._refresh_timer = setTimeout(doRefresh, this.refresh_period * 1000); // 失败也重试 + if (this.is_in_dom()) { + this._refresh_timer = setTimeout(doRefresh, this.refresh_period * 1000); // 失败也重试 + } else { + this._refresh_timer = null; + } }); };