RESTful degradable JavaScript routing using pushState