We have a question about how to handle multiple browser windows within Wisej.
At the moment when the user opens the application once everything is fine. But the user opens a new browser tab and navigates to the same application again Wisej restores the page to the state of the other tab. Now the two browser windows use the same Wisej page and we have a very strange behaviors because on serverside everything seems fine but the client has different states for each window.
I was able to find the secret refreshActiveTab option to solve the wrong client state but we are not happy with this situation.
From a user perspective a user expects that when he opens a new browser window this window is a new instance. If a user navigates to a saved favorite with url hash the old state is used (but changed because of the changed hash). Users do not understand this behavior.
Is there any way beside the cookieless option, which is also only working when the user is not using favorites, to handle this. Maybe binding the browser window to the instanceId?
Users are very complicated…
If we enter http://demo.wisej.com/CodeProject, open some wisej windows (ex. Open DataBinding Example) and then open new tab and also navigate again to http://demo.wisej.com/CodeProject the windows are already open. Like we have left the first tab. Now the user closes the wisej windows. But in the first tab the window is still available. But no matter what the user clicks within the DataBinding Example nothing happens. This is confusing for our users. If you open google.com, do something and open a new google tab it has no impact on the first tab. But the browser passes the same session (cookies).
With favorites I mean the browser favorites (IE) or bookmarks (Chrome & FF). Where you “remember” a page and by clicking on it the browser navigate to it. In cookieless we have the ?sid parameter included in the favorite. Our users have links like http://demo.wisej.com/CodeProject#Control1 and http://demo.wisej.com/CodeProject#Control2/objectid as favorite to allow a quick navigation to specific functions to our app. With cookieless the sid is included in the link. Therefor we have the same problem again.
Using the window.sessionStorage would be perfect because then the sid would not be visible in the url and multiple instances would be possible.
Thank you very much
Users want different things 🙂
Sharing the session cookie among tabs it’s not a Wisej feature. All browsers do that and all web systems that use session ids in cookies have the same behavior, including ASP.NET/MVC, PHP, JSP. It gets mitigated if you use URL navigation with ASP.NET, but most apps use update panels and single page and end up in the same place.
The refreshActiveTab option is meant to sync tabs and avoid messing up applications that were not designed to operate on multiple tabs. It’s documented but it’s not online yet.
A new option could be to use window.sessionStorage for the session id cookie. This one is isolated for each tab. I can log an enhancement issue.
Please login first to submit.