2 comments

[ 2.4 ms ] story [ 20.1 ms ] thread
I wanted to bring up an issue I've run into increasingly often, and ended up writing a short history of the SSR/CSR pendulum swing (as I understand it, anyway).

Fun-fact: I mention in the article that html forms are interactive even while the rest of the page is downloading, but they're are also interactive when the form itself is downloading. So the following form:

  <form method="post">
    <button type="submit">Submit Form</button>
    <input type="hidden" name="foo" value="a">
    <input type="hidden" name="bar" value="b">
    <input type="hidden" name="baz" value="c">
  </form>
can send any of the following requests:

  foo=a&bar=b&baz=c

  foo=a&bar=b

  foo=a
or even no request body at all.
A human should never be able to win a race condition, yet even without network delays, we somehow manage to make user interfaces that require running tens of billions of instructions, handling hundreds of millions of characters worth of data, all to present some text to the user, and it falls apart because the user pressed a button in less than a second or sometimes even a few seconds.

An ncurses GUI running over a dial-up terminal in the 90's was more responsive than most web pages on a modern web browser.

Granted, half the problem is the web browser itself. I'm typing this on a Chromium-based web browser on a an older laptop, and even though Hacker News is about the leanest web page in existence, I'm typing often a word ahead of what's displaying, because enough RAM to store 8 billion characters, and a processor with two cores each running 2.3 billion operations per second, each able to execute multiple instructions per operation, can hardly handle a text box displayed through Chromium's bloat.