I have been working with a customer recently who came to me in need of a website geared towards marketing his educational curriculum. After sitting with him and thinking I understood his needs, I began looking for existing frameworks that would provide a working foundation for this project. My investigation piloted me to
Moodle, an open source, course management system.
In this scenario, Moodle turned out to be a fine solution, for a larger-scale organization, like a university. Its features, while too many to list here, were almost too powerful for the needs of my customer. After seeing the frustration in his eyes, I decided to switch gears completely, and create a new web project using basic HTML and AJAX.
Reusing my layout from the Moodle project, I had a basic HTML site up and running quickly. As I created each page, I then ran into a problem of multiple HTML files with the same header, navigation menu, and footer. If my customer desired to change one menu item, certainly every HTML file would need to be modified. What a hassle. Having never been a fan of HTML frames, I decided to investigate AJAX as an option to retrieve HTML content and insert it into a content placeholder. Doing this in ASP.NET would be simple, but why make my customer have that dependency?
The solution worked wonderfully, except for the nature of AJAX and URL history navigation. AJAX systems are not capable of bookmarks by default, nor do they provide a solution to handle a user clicking a browser's forward and back buttons.
My solution: "The Really Simple History (RSH) framework makes it easy for AJAX applications to incorporate bookmarking and back and button support." The RSH was easy to implement and integrate into this simple HTML site, providing URL history and caching. Best of all, it is an open source solution. Feel free to see my customer's site in action.
"To Javascript! The cause of and solution to all of life's problems."
Really Simple History
AJAX: How to Handle Bookmarks and Back Buttons