I need to modify the hash, remove it after certain processing takes place so that if the user refreshes they do not cause the process to run again.
This works fine
Was facing this issue, As suggested in one of the answers, the issue was only when a 302/301 redirection. Hash change does not reload if the page was not a redirect. I was redirecting using PHP and did not want to use a cookie to stop the redirection.
More over this issue was there in some IE9 browsers as well, tried 5 IE9 browsers, 4 reloaded the page.
Here is a fix added this in head section :