From 7bb38bf2e5b49be05ea74d0cb3f566ed3e71b03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Fri, 24 Apr 2026 17:11:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86Safari=20=E4=B8=8D=E6=94=AF?= =?UTF-8?q?=E6=8C=81requestIdleCallback=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/component/Canvas/CanvasEditor/managers/BrushIndicator.js | 2 +- .../Canvas/CanvasEditor/managers/RedGreenModeManager.js | 3 ++- .../Canvas/CanvasEditor/managers/ThumbnailManager.js | 4 +--- .../CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js b/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js index 02dff910..90ed9080 100644 --- a/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js +++ b/src/component/Canvas/CanvasEditor/managers/BrushIndicator.js @@ -409,7 +409,7 @@ export class BrushIndicator { // this.show(e.e); this._mouseEnterHandler && this._mouseEnterHandler(e) } else { - // requestIdleCallback(() => { + // setTimeout(() => { // this.updatePosition(e.e); // }); diff --git a/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js b/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js index b8496609..b77da6d8 100644 --- a/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js +++ b/src/component/Canvas/CanvasEditor/managers/RedGreenModeManager.js @@ -133,11 +133,12 @@ export class RedGreenModeManager { this.canvas.on("mouse:up", (event) => { // 可以在这里添加更多逻辑,比如生成图片或更新状态 nextTick(() => { - requestIdleCallback(async () => { + setTimeout(async () => { if (!this.isInitialized) { console.warn("红绿图模式未初始化,无法处理鼠标事件"); return; } + console.log("鼠标抬起事件触发", this.onImageGenerated); if (this.onImageGenerated) { const imageData = await this.canvasManager.exportImage({ restoreOpacityInRedGreen: true, // 恢复红绿图模式下的透明度 diff --git a/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js b/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js index 3c042817..6dd9667f 100644 --- a/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js +++ b/src/component/Canvas/CanvasEditor/managers/ThumbnailManager.js @@ -37,7 +37,6 @@ export class ThumbnailManager { // 延迟执行,避免阻塞UI fabricObjects.length > 0 && - requestIdleCallback(() => { setTimeout(async () => { const base64 = await this._generateLayerThumbnailNow(fabricObjects, layer); // this.layerThumbnails.set(layerId, base64); @@ -55,7 +54,6 @@ export class ThumbnailManager { console.error("生成图层缩略图时出错:", error); } }); - }); } /** @@ -65,7 +63,7 @@ export class ThumbnailManager { generateAllLayerThumbnails(layers) { if (!layers || !Array.isArray(layers)) return; - requestIdleCallback(() => { + setTimeout(() => { setTimeout(() => { layers.forEach((layer) => { if (layer && layer.id) { diff --git a/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js b/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js index 15e2f797..f4429bb4 100644 --- a/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js +++ b/src/component/Canvas/CanvasEditor/managers/liquify/LiquifyRealTimeUpdater.js @@ -155,7 +155,7 @@ export class LiquifyRealTimeUpdater { // 使用requestAnimationFrame进行批量渲染优化 // if (!this.renderingScheduled && !this.config.skipRenderDuringDrag) { // this.renderingScheduled = true; - // requestIdleCallback(() => { + // setTimeout(() => { // this.canvas.renderAll(); // this.renderingScheduled = false; // });