- From: Scott Haseley <notifications@github.com>
- Date: Thu, 06 Jun 2024 16:19:57 -0700
- To: w3ctag/design-reviews <design-reviews@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3ctag/design-reviews/issues/967@github.com>
こんにちは TAG-さん! I'm requesting a TAG review of Prioritized Task Scheduling (big picture). Scheduling is an important tool for improving website performance and user experience, particularly on interactive pages with a lot of JavaScript. Two important aspects of this are: 1. Yielding, or breaking up long tasks. Long tasks limit scheduling opportunities because [JS tasks are not preemptable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop#run-to-completion). Long tasks can block handling input or updating the UI in response to input, which is often a cause of poor responsiveness. 2. Prioritization, or running the most important work first. The (task/event loop) scheduler determines which task runs next on the event loop. Running higher priority work sooner can improve user experience by minimizing user-perceived latency of the associated user interaction. The proposal consists of: - a small number of semantic priorities, which are used to prioritize tasks and continuations, and are used by UAs to prioritize these tasks within the event loop - several new APIs for scheduling and breaking up JavaScript tasks, with an associated priority - modifications to a few existing async APIs to support prioritization ----- - Explainer¹ (minimally containing user needs and example code): https://github.com/WICG/scheduling-apis/blob/main/explainers/prioritized-task-scheduling.md - Specification: https://wicg.github.io/scheduling-apis/ (this covers `scheduler.postTask()`, `scheduler.yield()`, `TaskController`, and `TaskSignal`. Other APIs in the explainer are at earlier stages of thought/design). - User research: N/A - Security and Privacy self-review²: - postTask(): https://github.com/WICG/scheduling-apis/blob/main/explainers/security-privacy-questionnaire-post-task.md - TaskSignal.any(): https://github.com/shaseley/abort-signal-any/blob/main/tag-questionnaire.md - yield(): https://github.com/WICG/scheduling-apis/blob/main/explainers/yield-and-continuation.md#self-review-questionnaire-security-and-privacy - GitHub repo: https://github.com/WICG/scheduling-apis/ - Primary contacts (and their relationship to the specification): - Scott Haseley (@shaseley), Google (feature/spec author) - Organization/project driving the design: Google - External status/issue trackers for this feature (publicly visible, e.g. Chrome Status): - scheduler.postTask(): https://chromestatus.com/feature/6031161734201344 - TaskSignal.any(): https://chromestatus.com/feature/5202879349522432 - scheduler.yield(): https://chromestatus.com/feature/6266249336586240 Further details: - [X ] I have reviewed the TAG's [Web Platform Design Principles](https://www.w3.org/TR/design-principles/) - The group where the incubation/design work on this is being done (or is intended to be done in the future): WICG - The group where standardization of this work is intended to be done ("unknown" if not known): WHATWG - Existing major pieces of multi-implementer review or discussion of this design: - Major unresolved issues with or opposition to this design: - This work is being funded by: Google You should also know that... This review request is in response to a [request](https://github.com/w3ctag/design-reviews/issues/827) for a "bigger picture" Scheduling APIs explainer (cc: @hober @plinss), and there is overlap with `scheduler.yield()`'s specification review in https://github.com/w3ctag/design-reviews/issues/966. Some of the work here (`TaskController`, `TaskSignal` (except `.any()`), and `scheduler.postTask()`) was reviewed in https://github.com/w3ctag/design-reviews/issues/647. -- Reply to this email directly or view it on GitHub: https://github.com/w3ctag/design-reviews/issues/967 You are receiving this because you are subscribed to this thread. Message ID: <w3ctag/design-reviews/issues/967@github.com>
Received on Thursday, 6 June 2024 23:20:01 UTC