概述`isInputPending()` 返回是否有用户输入待处理。可在循环或长任务中检查并分片执行,避免阻塞输入响应与滚动。用法/示例function heavyWork(items) { let i = 0 function step() { const deadline = performance.now() + 8 while (i < items.length && performance.now() < deadline) { doUnit(items[i++]) if (navigator.scheduling?.isInputPending?.()) break } if (i < items.length) setTimeout(step, 0) } step() } 工程建议与 `scheduler.postTask`/`rAF` 协作,为关键交互保留帧预算。在滚动与输入密集页面启用让步检查;在不支持环境直接进行时间片分片。记录让步触发频率评估策略效果,避免过度让步造成吞吐下降。参考与验证WICG:Scheduling APIs — https://wicg.github.io/scheduling-apis/web.dev:isInputPending — https://web.dev/articles/isinputpending

发表评论 取消回复