From a8cef4b919a7f5d9fe180ac9c62b1a894c9be7c1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 11 三月 2026 08:47:36 +0800
Subject: [PATCH] #
---
src/main/webapp/components/MapCanvas.js | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/main/webapp/components/MapCanvas.js b/src/main/webapp/components/MapCanvas.js
index b5ced58..5057776 100644
--- a/src/main/webapp/components/MapCanvas.js
+++ b/src/main/webapp/components/MapCanvas.js
@@ -119,6 +119,7 @@
},
shelfTooltipMinScale: 0.4,
containerResizeObserver: null,
+ resizeDebounceTimer: null,
timer: null,
adjustLabelTimer: null,
isSwitchingFloor: false,
@@ -173,10 +174,11 @@
if (this.hoverRaf) { cancelAnimationFrame(this.hoverRaf); this.hoverRaf = null; }
if (this.shelfCullRaf) { cancelAnimationFrame(this.shelfCullRaf); this.shelfCullRaf = null; }
+ if (this.resizeDebounceTimer) { clearTimeout(this.resizeDebounceTimer); this.resizeDebounceTimer = null; }
if (window.gsap && this.pixiApp && this.pixiApp.stage) { window.gsap.killTweensOf(this.pixiApp.stage.position); }
if (this.pixiApp) { this.pixiApp.destroy(true, { children: true }); }
if (this.containerResizeObserver) { this.containerResizeObserver.disconnect(); this.containerResizeObserver = null; }
- window.removeEventListener('resize', this.resizeToContainer);
+ window.removeEventListener('resize', this.scheduleResizeToContainer);
if (this.wsReconnectTimer) { clearTimeout(this.wsReconnectTimer); this.wsReconnectTimer = null; }
if (this.ws && (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING)) { try { this.ws.close(); } catch (e) {} }
},
@@ -377,7 +379,7 @@
this.pixiApp.view.style.height = '100%';
this.pixiApp.view.style.display = 'block';
this.resizeToContainer();
- window.addEventListener('resize', this.resizeToContainer);
+ window.addEventListener('resize', this.scheduleResizeToContainer);
this.graphicsCrnTrack = this.createTrackTexture(25, 25, 10);
this.graphicsRgvTrack = this.createTrackTexture(25, 25, 10);
this.objectsContainer = new PIXI.Container();
@@ -490,9 +492,18 @@
startContainerResizeObserve() {
if (typeof ResizeObserver === 'undefined' || !this.$el) { return; }
this.containerResizeObserver = new ResizeObserver(() => {
- this.resizeToContainer();
+ this.scheduleResizeToContainer();
});
this.containerResizeObserver.observe(this.$el);
+ },
+ scheduleResizeToContainer() {
+ if (this.resizeDebounceTimer) {
+ clearTimeout(this.resizeDebounceTimer);
+ }
+ this.resizeDebounceTimer = setTimeout(() => {
+ this.resizeDebounceTimer = null;
+ this.resizeToContainer();
+ }, 80);
},
getViewportSize() {
if (!this.pixiApp || !this.pixiApp.renderer) { return { width: 0, height: 0 }; }
@@ -2646,7 +2657,6 @@
}
}
});
-
--
Gitblit v1.9.1