Tuesday, October 18, 2005

If a client is using multiple Internet Explorer, then are they going to use the same session object or not ???

If the client uses multiple Internet Explorer, they will be getting different session provided the browser is not opened using ctrl+n or File>> New >> window.

With Opera and FireFox the same session is continued with both in a new tab (and) a new browser process(or) instance(or)window.
Only in IE with each new browser process(or) instance a new session is created.

How to set IE to run all windows using single browser process ?

There used to be a setting in the Advanced options area called "Launch Browser Window in a separate process" which, if enabled, would force a new session with each new window. If disabled, all windows would share the same session. However, as of IE 5.01, > this is no longer an option.

quote:


If the computer has less than 32 megabytes (MBs) of RAM installed, this setting is disabled and all instances of Internet Explorer share the same process. If there is 32 MBs of RAM or more installed on the computer, the setting is enabled, which causes new instances of Internet Explorer to create new processes.


You cannot guarantee session state to be maintained over multiple windows. If you need to maintain data over multiple windows, use a key in the query that is tied to a cookie or a bean.


A very good example to explain sessions would be your yahoo inbox

Start a new Firefox instance, open two TABS, type the user-name/password and login in to your yahoo account in one of the tabs. Now without logging out just close the browser tab leaving the second tab untouched. Now again open a new FireFox instance. Type the following URL
mail.yahoo.com. Now you will NOT be asked to enter your user-name and password again, because the session with which you had logged in is existing and has not expired(Timed-out).

But the above scenario is not possible in IE because every single instance of IE is considered as a new browser PROCESS no matter whether a previously opened IE instance exists or not and with every new IE you will be asked to enter the username/password.


2 Comments:

Blogger Rob said...

hmmm ... people are choking your blog with adverts.

(As at versions available Nov 2005)
Apparently IE can start in 2 ways: same process and hence same http-session if you use Ctrl-N or File New Window, OR different process if you start it from "the command line" such as from Start-Programs-IExplore or from the Desktop.
With Firefox/Mozilla it starts all instances in the same process so you get the http-session shared among all windows of the same breed (all FFs are shared, and all Mozs are shared, but FFs are separated from Mozs).
Joy. If you want to fix it so that you can respond to individual windows from serverside code you seem to have to maintain your own cache of serverside info and do tricky stuff with urls and hidden fields etc to trace window usage/expiry/duplication. The server cannot otherwise distinguish between individual windows on a users' PC. (This apears to be a limitation of HTTP, not which serverside technology you choose.)
Bliss.

5:00 PM  
Blogger Rob said...

I'll correct myself there ... it's not really a limitation of HTTP, it's a choice by the authors of the browsers to share a single process between multiple windows without identifying to users the implications of that on maintenance of serverside sessions.
It would be nice to have a "Open a New Window sharing this Session" command and a separate "Open a New Window with a new Session" command.
Or better still ... new Windows have a new process/session, and new Tabs (like Mozilla) have the same process/session, perhpas optionable in the settings.

5:08 PM  

Post a Comment

<< Home