Single Page Apps (SPA): Rich Internet Apps with HTML5 and Knockout
A rich Internet application (RIA) is a Web application that has many of the characteristics of desktop application software.
However, all of those frameworks just take advantage of AJAX calls. So, what's big deal?
There is a few reasons. First one is the fact, that HTML5 data-* attribute allows to bind variables to HTML elements. We do not need to select them using id or class attributes. Another reason is variety of frameworks, which makes all of those AJAX calls behind the scenes. Additionally they do lot of other work such us serializing, models binding etc. They are just higher level of abstraction than jQuery.
- Declarative bindings (easily associate HTML elements with model)
- Automatic UI Refresh (when data changes)
- Dependency Tracking (chains of relationships)
- Templating (easily generates UI depends on model data types) - e.g. we can use for loops in HTML
KnockoutJS is open source framework, created by Steve Sanderson.
The biggest advantage of all JS libraries from my point of view is the possibility to do more (functionalities) with less (code). In other words: avoid rewriting boilerplate code.
EDIT: You should also check John Papa's HotTowel project template for Visual Studio, which gives you great start point for building SPA. It contains many JS libraries (e.g. Knockout and Durandal) for Rich Internet Apps development. More info on John's blog. Thanks to nilphilus and Piotr Ptak for mentioning about it in comments.