Ask HN: Why don't we stream websites like movies?

1 point by shanebellone 1 year ago | 14 comments
Streaming data would allow for "browser-based applications" (e.g. single request/refresh-less web applications).

Why is the standard approach still transactional?

  • edent 1 year ago
    Well, 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-vn...

    • shanebellone 1 year ago
      Let 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 1 year ago
        That sounds like AJAX, no?
        • shanebellone 1 year ago
          It 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

    • eimrine 1 year ago
      Seems 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 1 year ago
        By snoop-phone, do you mean stalkerware? I have not heard this phrase before. Thanks in advance for the clarification.
    • warrenm 1 year ago
      Why 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?