NodeQuery is a realtime server-side DOM API
github.com
github.com
We think of js as being of paramount importance in web development because it's the only way to interact with the DOM, so we've mostly come to terms with it and its flaws (which are manifold, even though I happen to think it's a nice language in lots of ways). But if we put all DOM manipulation on the server-side with a very thin client-side javascript communication and manipulation layer, this isn't necessary.
You could write your entire application in Ruby, Haskell, Forth, whatever floats your boat, against a standardized, cross-browser, and improved DOM.
This is powerful and intriguing.
It may not be quite the same thing, and I can't really parse the website very well for how it really works. I do remember it holds a copy of the DOM server side then manipulates it over HTTP.
So if you want it in Java, there's that.
All this to just save having to load jQuery in the client? Not sure I get the advantage.
So in your situation I'd believe what you'd see is the server sending the command to attach event handlers to the elements you're clicking before you start interacting with it.
Is it production ready? (Edit: Duh, says "beta")
I'm not sure I really see the benefit of this. Not to say it isn't cool, just wondering where it would be useful over client-side DOM.
My understanding of node is that the benefit is in the lack of thread locking, not specifically that it runs javascript.
-You can keep your application code hidden from prying eyes
-You only serve up ~120kb of javascript to the client no matter how intense your application is
-You can get better response times for realtime games and apps since what your user is doing is tightly coupled with what actually needs to react (the server).
-You can write 3,000,000 or 10 lines of application logic and it will not affect the speed of the client's device.
One flaw is (potentially) in coming up with a new way to cache redundant requests properly.
The real strength is reducing the transfer size. You're only sending what's needed by the client. Nice stuff, if it works as-advertised.
You can already write code in server side frameworks and only ship as much code to the client side as actually needs to be there, but surely this isn't what you're talking about.
What am I missing?