I am using sammy.js with my asp.net mvc web application for client-side routing so as to provide single page user experience. I have created a demo application which works fine in IE9+ and other modern browsers. However, while running in IE8 on XP and Win7, I'm facing a strange problem. While browsing this demos site, IE8 remembers the back and forward navigation for initial browsing and then it totally forgets about the browsing history or steps I have taken to reach the current page. So, the back button gets disabled as there is no browsing history linked. This is not happening in other browsers and they remember the pages I'm browsing.
This is the link of the script that I have written where I have defined my sammy.js routes.
The structure of my app is like this - A User:
#/
routeNow, IE8 remembers only some of these steps but keeps deleting the history items in the browsing session on its own. I have tried using the script debugger of IE and no error was showed.
On every route, I have also tried using alert(history.length);
which gives different random number not I was expecting like +1 every-time I visit a new page. Then I found this support information on Microsoft's website. Disabling the automatic crash recovery feature didn't helped in this case.
I'm not able to figure out the reason behind this strange problem. The codes works fine for other browsers. I have also tried resetting IE8 on XP and Win7.
It would be really helpful if anyone can tell me what am I missing or doing wrong.
Cheers
I have really tried many things to identify any possible reason of the issue above. Even rewrote all my javascript navigation code and checked server-side code.
But the only place where I got the solution is at site: enhanceie which states that there is a bug in IE8 which reads like:
IE0012: IE Travellog broken when navigating back/away from a page with a large POST form If there is a form input field with a value longer than 523,659 characters, when you navigate away from the page, IE may clear the current session's travellog (similar to history), disabling the back and forward buttons. Repros in IE6 & IE7.
There are following solutions that you can go for:
If you have control over the system where IE8 will be used, you can add the following registry key on that machine. There is no existing key, so, you need to add a new one:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TravelLog] "MaxSize"=dword:ffffffff
I am really relaxed to find this information as I spent really long time to solve this issue. Hope this will help someone.