window.onunload=userLogout;
然后在userLogout里用xmlhttp发送注销请求到服务器
不过不好的地方是window.onunload在刷新页面的时候也会触发
IE出错挂了; IE禁止了javascript;通过kill process杀死ie进程;
你说的情况不会一定发生.
>
> IE出错挂了; IE禁止了javascript;通过kill
> process杀死ie进程;
>
> 你说的情况不会一定发生.
ray_linn 你别在扯淡了,不知道就直说,别人说了方案,你又从那里拽异常关闭了,扯淡。
不同的浏览器只是对cookie的进程共享不一样,这影响解决方案吗?
>>新窗口的session id和老窗口是一样的,这样您关掉一个另一个岂不是也掉线了
我们假设每个页面都有这样的语句:往session的MAP对象里写一个类似于
value-url的MAP对。
refresh怎么办?判断是不是refresh,如果是就先用AJAX写一个负值的value-url的MAP对(负值只是为了好区别),然后页面刷新的时候再写的时候,判断有负值的value以及相同url,就直接去掉这个MAP对,就不再写了。
ctrlN怎么办?ctrlN不触发onunload相当与一新页面。照样写MAP。另外我们关注的是浏览器的窗口个数,不是MAP重复值。
同一页面的连接怎么办?做成这样 dfghdfghdfg aa()这个函数里转向,且发请求到server端去掉原来的value和旧的url,写一个负值的value以及转向的url,因为要保持一个浏览器。(这里浏览器会认为这是刷新)
target = blank的页面的连接怎么办?这很简单,没啥操作。
总之,session中的MAP对个数就是浏览器的个数,在每次remove的时候判断MAP对个数如empty了就invalidate掉。
至于异常的情况我说扯淡的原因:这不关做系统的事情,这很像偷换概念来压人,我并不能接管浏览器的事件或异常,你可以说要是操作系统异常怎么办?要是计算机当机怎么办?硬件燃烧怎么办?是的,所有异常的情况我无法做到关浏览器同时清session。
至于上贴发的东西全当我没说好了。对不起那位兄弟
退出的时候触发一个javascript打开一个到另外一个新的jsp,此jsp关闭session,但是我却不清楚怎么自动关闭这个新的jsp.
在此页面的jsp中使用onBeforeUnload="closesession()" onUnload="closewin()",Ok了