5 ms·
Ask HN: Why don't we stream websites like movies?
Streaming data would allow for "browser-based applications" (e.g. single request/refresh-less web applications).
Why is the standard approach still transactional?
- edent 3y agoWell, we can - that's how VNC and other protocols work. But it has a few disadvantages. The first is latency. When you scroll or click, you want the response to happen quickly. If you're streaming the response you have to wait for at least one round trip before anything happens. Secondly is bandwidth. For all the snark about bloated images and JS libraries, the web is extremely bandwidth light. A 1080p video is less so. Thirdly, it was tried before. Opera Mini used to render pages before sending them out. It sort of worked for low powered devices but had a lot of quirks which I think gave the idea a bad name. Finally, it would be impossible to block ads on a streamed website. See https://shkspr.mobi/blog/2023/07/the-future-of-the-web-is-vnc/ https://shkspr.mobi/blog/2023/07/the-future-of-the-web-is-vn...
- shanebellone 3y agoLet me clarify with some context. I've been tinkering with an infinite grid concept that consumes a streamed JSON feed (plus a sufficient data buffer to hide any delay from the user) to create and then display content with the help of a JS factory. All related media is then streamed to the browser and lazy loaded when needed. With this setup, you can traverse a database without refreshing the page by redrawing the window. The only potential drawback I see is whether or not search crawlers could index content that's introduced via JS after a page load. Edit: It also appears to protect from scraping... so I suspect it would conflict with indexability. That's a pretty big downside if true.
- warrenm 3y agoThat sounds like AJAX, no?
- shanebellone 3y agoIt does sound like it, but no it's just plain JS. I recorded a short clip; showing is better than attempting to explain. Edit: It is almost AJAX. The more I think about it the more the boundaries get blurry. Essentially, it's AJAX that does not fetch or receive resources directly. It interacts with a buffer that holds JSON which describes the next batch of cards. The images are streamed via <img> tag, so the buffer is small relative to the media it represents. https://www.youtube.com/watch?v=6eSDuAe3pHA https://www.youtube.com/watch?v=6eSDuAe3pHA
- eimrine 3y agoSeems like you have described apps for snoop-phones. Those are a refresh-less, not device-agnostic browser apps with no tabs, no ability to change a font-size and limited ability to block ads.
- shanebellone 3y agoBy snoop-phone, do you mean stalkerware? I have not heard this phrase before. Thanks in advance for the clarification.
- eimrine 3y agoI am a big fan of RMS and I find promising to promote his way of naming things everywhere. Here are two recent links which explain this word choice. [1] https://www.stallman.org/archives/2023-jul-oct.html#26_September_2023_(How_to_really_know_a_person) https://www.stallman.org/archives/2023-jul-oct.html#26_Septe... [2] https://www.stallman.org/archives/2023-jul-oct.html#11_September_2023_(Smart_device_collect_excess_information) https://www.stallman.org/archives/2023-jul-oct.html#11_Septe...
- shanebellone 3y agoAh, but that's not that case here at all. It's not an app. It's still a sandboxed web page. The only difference is the communication method. Rather than a transactional client-server relationship, we adopt the media-steaming approach post-load. That is to say: You would load your desired website (the standard way) and then experience a "refresh-less" session for the duration of your visit.
- eimrine 3y agoDo you propose thin or thick client? How about Java applets or MS Silverlight?
- shanebellone 3y ago
- warrenm 3y agoWhy do you want to "stream" a website? An average website is a couple megs (maybe?) What advantage would "streaming" that have over just loading it? How would you account for AJAXy sites/services?