You cannot change the url without redirecting, but you can change the url hash!
You can simply use the location setter to "redirect" to a hash. The page shouldn't reload.
You can use the hash to store whatever you like:
document.location.hash = "{blah:x,blah2:y}";
var hash = document.location.hash;