From f3577afd227b9b5fc3b9989d16c82b3e3d00de9c Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Sat, 12 Sep 2026 00:59:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B8=B2=E6=9F=93=E8=B0=83=E5=BA=A6=EF=BC=8C?= =?UTF-8?q?=E5=87=8F=E5=B0=91=E5=A4=9A=E9=A1=B5=E5=8A=A0=E8=BD=BD=E7=AD=89?= =?UTF-8?q?=E5=BE=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/ofdgo.js | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/assets/webui/ofdgo.js b/assets/webui/ofdgo.js index bcc67b3..ed79501 100644 --- a/assets/webui/ofdgo.js +++ b/assets/webui/ofdgo.js @@ -1533,10 +1533,10 @@ function schedulePageRender() { async function processPageRenderQueue() { try { + await nextFrame(); while (state.pageRenderQueue.length) { state.pageRenderQueue.sort(comparePageRenderTask); const task = state.pageRenderQueue.shift(); - let delayed = false; try { if (task.openSeq !== state.openSeq) { task.resolve(null); @@ -1546,16 +1546,6 @@ async function processPageRenderQueue() { task.resolve(state.pageCache.get(task.index)); continue; } - await nextFrame(); - if (task.openSeq !== state.openSeq) { - task.resolve(null); - continue; - } - if (shouldDelayPageTask(task)) { - state.pageRenderQueue.push(task); - delayed = true; - continue; - } const page = await callWASM("ofdgoRenderPage", task.index); if (task.openSeq === state.openSeq) { state.pageCache.set(task.index, page); @@ -1565,23 +1555,14 @@ async function processPageRenderQueue() { } catch (err) { task.reject(err); } finally { - if (!delayed) { - state.pageInFlight.delete(task.key); - } + state.pageInFlight.delete(task.key); } } } finally { state.pageRenderRunning = false; - if (state.pageRenderQueue.length) { - schedulePageRender(); - } } } -function shouldDelayPageTask(task) { - return state.pageRenderQueue.some((next) => next.openSeq === state.openSeq && comparePageRenderTask(next, task) < 0); -} - function comparePageRenderTask(a, b) { return a.priority - b.priority || Math.abs(a.index - state.pageIndex) - Math.abs(b.index - state.pageIndex); }