Building rich JavaScript applications that bring the desktop experience to the Web is now possible, thanks to powerful JavaScript engines and the CSS3 and HTML5 specifications. The key is moving state from the server to the client side, but that's no simple task. This book takes you through all the steps necessary to create state-of-the-art JavaScript applications, including structure, templating, frameworks, communicating with the server, and many other issues. Through practical, tutorial-based explanations, you learn how to create JavaScript applications that offer a much more responsive and improved experience. You'll work hands-on with an example application throughout the book to learn the concepts involved.Explore MVC and how to best structure and manage dependencies inside your application Get an introduction to templating and data binding Learn about loading remote data, Ajax Level 2 and cross-domain requests Use WebSockets and Node to create realtime applications Accept dropped files and upload data with progress indicators Learn about major frameworks and libraries, including jQuery, JavaScriptMVC and Backbone Write tests and use the console to debug your applications Get deployment best practices, such as caching and minification