feat(前端界面): 优化渲染调度,减少多页加载等待
build.yaml / build (push) Successful in 41s

This commit is contained in:
xiaoqidun committed 2026-09-12 00:59:15 +08:00
1 parent ce9de329d9
commit f3577afd22
1 file changed
+1 -20
+1 -20
View File
@@ -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,21 +1555,12 @@ async function processPageRenderQueue() {
} catch (err) {
task.reject(err);
} finally {
if (!delayed) {
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) {