API proposed by Chrome: Declarative partial updates

theanonymousone2 pts0 comments

Declarative partial updates | Blog | Chrome for Developers

Skip to main content

English

Deutsch

Español – América Latina

Français

Indonesia

Italiano

Nederlands

Polski

Português – Brasil

Tiếng Việt

Türkçe

Русский

עברית

العربيّة

فارسی

हिंदी

বাংলা

ภาษาไทย

中文 – 简体

中文 – 繁體

日本語

한국어

Sign in

Blog

Chrome for Developers

Blog

Declarative partial updates

Stay organized with collections

Save and categorize content based on your preferences.

Barry Pollard

GitHub

Mastodon

Bluesky

Homepage

Noam Rosenthal

GitHub

Mastodon

Published: May 19, 2026

The web has long since moved on from the static, document-driven medium that it started as. Modern, rich web apps are used by everyone for many reasons, from communicating, purchasing, consuming rich content, to managing our complex lives.

HTML, despite all its advances, is still delivered in-order in a top-to-bottom fashion with little regard for when content is ready or when the user consumes it. CSS lets you change the ordering of content, but often with significant accessibility side effects. JavaScript lets you manipulate the DOM through various APIs to break free of this somewhat, but those often require verbose syntax or construction of DOM trees to plug into HTML.

Performance is incredibly important for the web, given the client-server nature of the medium but suboptimal choices are often made to circumvent this in-order nature of HTML, which slows down performance. This includes waiting until the whole page is ready or using a heavy framework to deliver components in an asynchronous manner. The popularity of JavaScript frameworks shows that web developers prefer a component-based model rather than the rigid document mental model of the web's origins.

The Chrome team has been considering this problem and has been developing new additions to the web platform under the name of Declarative Partial Updates.

Two new sets of APIs make it easier to deliver HTML in a less linear fashion, whether out-of-order in the HTML document itself or through easier ways to dynamically insert HTML into existing documents using new JavaScript APIs. These are ready for developer testing from Chrome 148 using the chrome://flags/#enable-experimental-web-platform-features flag. Polyfills are also available to let you use these new APIs right away, even in browsers that don't yet support them.

These additions to the web platform are being standardized with positive feedback from other browser vendors and standardization avenues. The relevant standards are in the process of being updated to include these new APIs.

Out-of-order streaming

The first set of changes are new out-of-order streaming APIs using the HTML element and processing instruction placeholders. For example:

...

Here is some HTML content!

Processing instructions have existed in XML for a long time, but have been treated as comments in HTML and ignored. This new API changes that and brings processing instructions to HTML. When the browser sees the processing instructions, it doesn't do anything straight away—much like before—but they can be referenced later.

The element looks up the corresponding processing instructions with a name attribute and replaces the content. In this case, after being parsed, the DOM ends up as:

Here is some HTML content!

As well as the attribute for replacements, there are also and range markers which allow for temporary placeholder content to be shown before the template is processed:

Loading…

...

Here is some HTML content!

In this case, Loading… shows until the is seen and then is replaced with the new content.

It is also possible to include processing instructions in templates to allow multiple updates:

Loading…

...

Result One

...

Result Two

...

This results in the following HTML after being parsed:

Result One<br>Result Two

With the final processing instruction at the end in case any more are added to the document later.

Demo

In this video, a basic photo album application is implemented with streaming HTML:

Photo album demo implemented with out-of-order streaming (source)

Both the status and photos are streamed into the HTML after the initial layout.

Use cases

There are many use cases for this out-of-order patching HTML when coupled with streaming HTML:

Island architecture. A common pattern popularized by frameworks like Astro the island architecture where components are hydrated independently on top of static HTML. The API lets static content be handled in a similar fashion directly in HTML. JavaScript frameworks can also use this for more interactive islands or to handle components.

Delivery content when it is ready. Thanks to this island architecture, content can be streamed when it is ready rather than held back for content that requires extra processing, for example, a database lookup. While many platforms allow streaming HTML, the in-order nature of HTML means that content is often held back, or by resorting to complex JavaScript...

html content order processing chrome apis

Related Articles