Sproutcore is a big complicated system that I have not fully investigated. It comes with a good pedigree though and is very nicely documented and designed. Worth a look if you want to have a super responsive browser based app that will continue to work even when the network connection is gone.
Here is their own blurb: "SproutCore applications move business logic to the browser so they can respond to your users' taps and clicks immediately, avoiding an agonizing roundtrip across often intermittent network connections.
As web application users go increasingly mobile, applications can no longer depend on reliable connections to a remote server to do the heavy lifting.
At the same time, web browsers continue to radically improve their ability to quickly process data and deliver polished user interfaces—a perfect opportunity to rethink the architecture of modern web applications."