API proposed by Chrome: Declarative partial updates
25 points
5 hours ago
| 6 comments
| developer.chrome.com
| HN
dfabulich
9 minutes ago
[-]
Declarative partial updating "sets the stage for client-side includes." https://github.com/WICG/declarative-partial-updates

The linked article suggests a potential syntax:

  <template for="footer" patchsrc="/partials/footer.html">
That would transclude the content of /partials/footer.html in your HTML.

But the road ahead for this is still quite bumpy. Here's a good video from a year ago, talking through the obstacles. https://www.youtube.com/watch?v=t0NBcve0enY

reply
nofriend
47 minutes ago
[-]
Very odd proposal. The new element syntax is perhaps the boldest choice. I wonder why they thought that was necessary. The idea of using this to defer rendering elements is also odd. So this would use a http long polling style? It really goes against several decades of progress in the web platform, where by now it's long established that you do this sort of thing with xhr. I'm amazed that they even put this in chrome, let along are saying things like "let sites use this new functionality right away even before this lands in other browsers" as if it's a sure thing.
reply
kkarpkkarp
25 minutes ago
[-]
> The new element syntax is perhaps the boldest choice

Probably to not break anything in older browsers which hasn't adopted it yet: new tag will be simply ignored, that's my thinking

> I'm amazed that they even put this in chrome, let along are saying things like "let sites use this new functionality right away even before this lands in other browsers"

It is behind the flag, like every other new proposal they made. Even though some dev would like to use it right now (for regular site visitors, not for self testing), she can't.

reply
dfabulich
25 minutes ago
[-]
The new element syntax is needed to signify DOM ranges that may cross the boundaries of HTML element trees.

  <p>
    <em>Some <?start name="hl"?>text</em>
    to replace<?end name="hl"?>.
  </p>
Jake Archibald at Mozilla has a good video about this. https://www.youtube.com/shorts/yARSOcqOWvY
reply
kkarpkkarp
20 minutes ago
[-]
I am puzzled then: so what would happen if the template will replace this island form your example with markup without closing `</em>`?
reply
dfabulich
15 minutes ago
[-]

  <p>
    <em>Some replaced text
  </p>
Which, by the HTML standard, will automatically close the `</em>` as the `</p>` closes.
reply
BigJono
24 minutes ago
[-]
Wtf?

I can't really tell how you'd even use this. Is it supposed to be some sort of micro-optimisation thing to do with how HTML is parsed (now you can download chunks out of order, presumably with some performance gains since it's browser native?).

When I saw the title I was hoping it was going to be a very simple React-like API for constantly updating parts of the DOM with maximum performance since the browser devs are now involved. It doesn't look like that's what this is at all. And all these years later I'm still wondering why browsers aren't implementing an API like that when it's been obvious for over a decade now that real-time DOM updates are a vital browser feature that needs to be performant, and that developers vastly prefer a declarative model to a procedural one. Why after 15-16 years are we still building 100 versions of the same abstraction in user-land to turn Element.append into "refresh these elements when this data changes"?

reply
fg137
27 minutes ago
[-]
I scanned the page but didn't get -- why? What problem does it solve? Why is a browser in the business of taking care of content update? How is this better than existing solutions?
reply
trueno
16 minutes ago
[-]
From what I read, think HTMX. HTML streams top to bottom so this proposal means out of order streaming of html things. So handles a lot of delivery/rendering stuff that's frontloaded with react/js/etc. It doesn't touch state management though.

Don't use chrome anymore but, I dunno if all browsers came to the table and unified behind something like this I'd be all about it. Most of the web stacks seem like some weird polished turd solution where we started frontloading more and more onto javascript, so I am amusingly not against this proposal. Feel like it could be a step into a better direction for web technologies, which feel like a very odd/lost ship in the world of software.

reply
dfabulich
23 minutes ago
[-]
reply
ComputerGuru
45 minutes ago
[-]
Is this a Google-only proposal? Has Mozilla provided their thoughts on the matter?
reply
dfabulich
19 minutes ago
[-]
When you have questions like this, the best places to check are the "standards positions" Github repositories for Mozilla and WebKit.

https://github.com/mozilla/standards-positions/issues/1369

Mozilla hasn't officially weighed in, but one decision maker (hsivonen) did vote in favor of it.

Apple WebKit is officially in favor of it, as of just a few days ago.

https://github.com/WebKit/standards-positions/issues/628

reply
michaelmrose
1 hour ago
[-]
So htmx?
reply
iddan
42 minutes ago
[-]
But native
reply