Hacker News new | past | comments | ask | show | jobs | submit login

It does not, Qwik’s claim to fame is that it doesn’t need to hydrate the page with JavaScript, it does this not only by serialising data sent from the server but also by doing it with the “component code”. The explanation is a bit simplified but hopefully it makes sense.



I can't get it from that explaination.

Does it work like elder.js?


The key difference is that Svelte, like React/Vue and most other frameworks is not resumable. Resumability essentially means that the client is able to take server-rendered markup and state and resume execution – this greatly reduces the overhead associated with hydration (it's kind of like a very, very efficient hydration)

The only resumable frameworks currently are Qwik and Marko6 (not released yet, beta coming Q1 2023)

Elder.js does partial hydration, which is similar to what Marko5, Astro or Fresh do. It basically means the server marks certain components (or component trees) as static, and tells the client to not hydrate them at all.

This works in reducing the amount of work the hydration has to do, and therefore making it quicker, but it doesn't do much for web applications with lots of interactivity.


What I do not understand is why is hydration claimed to be such a concern if it only happens on initial page load and then the client-side takes over?

In Amazon famous case, the 100ms delay was because it was an MPA: each page change was a page load. In that case I'd understand.


I don't disagree, plus the Amazon metric has been quoted everywhere with very little context, so I wouldn't be surprised if it was not fully accurate.

However, there are teams that have a lot of insight into the needs of ecommerce that are investing heavily in reducing the hydration overhead – I imagine the reason for it is that in very dynamic sites it feels clunky that the user can't interact with the page until it has hydrated.

It is no coincidence that the only other framework besides Qwik that is being built around resumability is eBay's Marko 6


Isn't eBay another MPA?

They have probably influenced each other but I still feel like the claims about hydration might be kind of a red-herring.


I'm not sure why you think MPA is somehow inherently slower than a SPA

For a complex application, data has to load in from the server on every page load – it can't simply be all bundled into the js.

In eBay's case, a MPA using their own custom framework makes sense, as they do async rendering (e.g. you can load and show the most important data in the page quickly, while ancilliary stuff can load afterwards) and partial hydration (so if a component doesn't require js, no js loads/runs)


I haven't said that.

The point is that hydration is more of an issue for MPAs since each time the page loads (on navigation), the html must be parsed and DOM objects need their javascript listeners attached.

For SPA, this is not the case after the initial page load event. Hydration needs to happen only once at startup.


eBay develop Marko and use it for their pages. This talk between a Qwik team member and a Marco team member explains the differences a lot better than what i can https://www.youtube.com/watch?v=7XR5-qDhqGY


Thanks.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: