I'm looking for a JavaScript or CoffeeScript library or framework that:
- Will generate the pages for a single-page application (SPA) - that is to say, it's not just a set of ornate markup for server-generated HTML.
- Will handle times when the application can't see the server, by holding modified data in local storage, caching the server requests and sending them when the server becomes available.
- Has a programming paradigm that is consistent with at least one of: jQuery, CoffeeScript, JavaScript (or even PHP, Ruby, Python, C#, but those are probably much less likely. I think Google Web Toolkit may do what I'm after, but I'm not a Java programmer and have no intention of becoming one).
- Works fine on Windows Phone 8 and current Firefox & Chrome browsers.
Note that this is only a question about the front end: the client side, on the browser. The backend, on the server, is out of scope.
Do you know how JavaScript can create a DOM object? And how a web page is just a bunch of DOM objects. And how on any given web page seen by the user, some of the DOM objects could be created by JavaScript on the client, and some created on the server and served to the client. A lot of SPAs have almost all DOM objects created in JavaScript on the client. That's what I'm after.
I could do it in vanilla JavaScript: but then, that's true by definition for anything a JavaScript framework or library does. I'm looking for a library that makes things easier.
Context
I used to be a developer on the free-of-charge, libre, open-source gtd-php application. It's now on GitHub, for now as abandonware. I still use the application day to day. The user experience isn't that comfortable, but the functionality is just what I need to manage my tasks in a "Getting Things Done" style. I had in mind that if I went back to developing something in it, the thing I'd really want to do is radically overhaul the front end, and generate it all in the client browser, exchanging data with the server via JSON. Hence this question.