Well, History is the recommended way handling such situations. Since you can't refresh the page, you can't pass data via POST.
One solution that comes to my mind is storing information in the window.name
variable. It's a "forgotten" variable, that doesn't have a limit on its contents (IIRC) and doesn't get cleaned when you go to another website. You'd probably have to write some JSNI code, here are some links on this topic: link1, link2, Google for more ;)
But you'd be doing the same thing for History - the only difference is that the user won't see a possibly long URL. But do you really need to remember all those values? It's understandable for moving between views inside an app, but when the user moves away from the site and comes back, he/she's not expecting to see the values remembered (and it might be confusing and a possible security hole).