javascript清除session的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:09:09
java中的session就算浏览器关掉也还要在服务器端存活默认的时间(tomcat为30分钟)。我现在想用JavaScript判断浏览器关闭,并且关闭的浏览器是最后一个session存在的页面(也就是该页面访问那个网站没有其他的子窗口和父窗口(这里的父窗口指的是父窗口存在session))。这样的代码怎么写啊。我现在只能写成关闭一个窗口就清除session。请朋友们帮下忙。

这样应该很难实现的.但可以想一起不常用的办法.

首先,session是用户级的一个全局变量,也就是说不管你是子页还是父页都是一样的session,而不会存在什么子页的session或是父页的session,它们是一个,不管你有多少个页面在未超时的情况下都是一个session的.

所以,这样你可以让你的存活时间改为0,也就是只有浏览器打开时是存活的,浏览器关闭时即可关闭就可以了.不知道你是出于什么样的目的来做这个代码的.

当然,因为是用户级的,所以如果设置时间为0时,所有的用户都是一样的.如果想实现某一个用户关闭就关闭时,不能这样设置的.一个例子,所有的用户都是关闭网页时30分钟取消session,这个值的设置是在application,站在了服务端的全局,所以不能对特定的一个用户进行设置的.虽然可以使用页面中,页面级可以,但用户级,还是特定用户时,可以使用session来做一下.

用户打开一个页面时,用session("pagecount")赋值为1,当然再打开一个就加1,这样可以统计当前用户打开了多少个页面的.关闭一个就减1.

判断一下你这个是否是那个特殊的用户,若是,则检查其session("pagecount"),如果这个值是1时,在关闭时可以直接清除session,若不是1时,将其值减1,这样做的目的,只是对于特定用户进行的有效清除.

当然,如果是所以用户都是这样子的话,一定要用timeout进行设置,这样非常方便.

在打开一个浏览器中可以这样写:

if isnull(session("pagecount")) then
session("pagecount")=1
else
session("pagecount")=session("pagecount"+1)
end if
关闭浏览器的事件中可以这样写:
if session("pagecount") = 1 then<