Happy to see people are enjoying it!
Happy to see people are enjoying it!
I really feel that the web is moving towards a components/modularized system where every tag is built from subtags, a bit like how iframes used to work but without the security implications. For example, I was shocked when I learned back in the 90s that server-side includes where generally disabled on servers, which led to the proliferation of cgi-bin, php, ruby, node.js, etc etc which may not have been necessary otherwise.
To get to my question - is adding websocket/socket.io on the horizon? If intercooler.js can get to a truly push-based method of state synchronization, it would be huge.
http://intercoolerjs.org/docs.html#philosophy
I'm looking to add server-side event support in the next month or so, which would give us a nice way to implement push-based updates:
https://github.com/LeadDyno/intercooler-js/issues/131
I'm working on a demo chat UI myself, so I will be motivated to add it soon. :)
(I was unaware of EventSource. It looks so, so much nicer to use than raw WebSockets...)
As an aside: Intercooler obviously requires Javascript to work; is there any fallback if Javascript's not available? It sounds like, at least for interactions on things like form buttons, it ought to be possible to send an old fashioned POST to the server which rerenders the entire page.
http://stackoverflow.com/questions/3508338/what-is-the-bound...
Now unfortunately there will be a requirement client-side to decode binary data or strings with escaped newlines. We'll get the benefit of deterministic behavior at the cost of escaping payloads, and I'm not certain it's worth it.
This seems like an opportunity lost to me. Big enough that this may be one of the basic building blocks we skipped over in the rush to javascript. Maybe the community could wrap this to look like a client-side form until there is a standard.
It's on the list.
You can use the data-prefix though if you want by including the following meta tag:
<meta name="intercoolerjs:use-data-prefix" content="true"/>