Declarative Partial Updates experiments
declarative partial updates experiments
Experiments with the Declarative Partial Updates API and the Navigation API. As little JS as possible. Chrome 148+ behind chrome://flags/#enable-experimental-web-platform-features.
01. Basic marker placeholder + declarative replacement, zero JS.
02. Streaming fetch into elementstreamHTML() piping a chunked fetch into the DOM.
03. HTMX emulationTiny JS that turns data-target attributes into streamed partial updates.
04. Navigation API + DPUSPA routing via navigation.intercept(), content via streamHTML.
05. Islands architectureIndependent islands, each fetched in parallel via DPU.
06. Server-side renderedServer streams the whole document with out-of-order fills.
07. Streaming clockLong-lived response that re-flushes a every second. Zero JS.
08. Skeleton cardPlaceholder shapes that match the final layout — no layout shift on fill.
references
Chrome blog: Declarative Partial Updates — Barry Pollard's introduction to the API.
WICG/declarative-partial-updates — Specification repo with explainers and issues.
Patching explainer — / markers and .
Dynamic-markup explainer — The new streamHTMLUnsafe() / append / prepend / replace methods.
Chrome Status: Out of order streaming — DevTrial in 148 (behind flag), shipping target 150.
Chrome Status: Parse processing instructions in HTML — Supporting work that makes / parseable.
Chrome Status: setHTMLUnsafe and parseHTMLUnsafe — Chrome 124 foundation that the streaming methods extend.
WHATWG HTML PR #11818 — The actual spec change for out-of-order streaming.
WHATWG HTML issue #2142 — The original 2017 thread that led here.
Mozilla standards-positions #1369 — Currently "No signal".
WebKit standards-positions #628 — Currently "Support".
template-for polyfill
html-setters polyfill
Chrome docs: Navigation API
Jason Miller: Islands Architecture
photo-album-server.js — A larger out-of-order streaming demo from the same team.