HTML Streaming
This is the place to discuss how HTML Streaming can be applied at GitLab.
What is Streaming
Introduction to Streaming video
Live Vue Worker Streaming example, (source)
Slow-motion HTML Streaming recording example
Screen_Recording_2023-01-26_at_16.37.41
Talk References:
- https://httparchive.org/reports/state-of-javascript
- https://developers.google.com/web/updates/2019/02/rendering-on-the-web?hl=en
- https://tech.ebayinc.com/engineering/async-fragments-rediscovering-progressive-html-rendering-with-marko/
- https://mxstbr.com/thoughts/streaming-ssr/
- https://blog.codinghorror.com/the-lost-art-of-progressive-html-rendering/
- https://jakearchibald.com/2016/fun-hacks-faster-content/
- https://www.builder.io/blog/from-static-to-interactive-why-resumability-is-the-best-alternative-to-hydration
- https://vuejs.org/api/ssr.html#rendertosimplestream
Potential candidates for Streaming
- Merge requests
- Overview
- Changes
- File (blob) view
- Blame view
Everyone's welcome to suggest their own candidates in the discussion.
Implementation
To be discussed...
Current blockers
- DOM-reliant libraries
dompurify
- Sharing
window.gon
: user settings, translations, etc...
SSR approach
- Requires a server, discussed in gitlab-org/gitlab#215365
WebWorkers approach
- Vue 3.2 requirement
Edited by Stanislav Lashmanov