function sessionDestroy() {
session_destroy();
setcookie(session_name(),'',time()-3600);
$_SESSION = array();
}
如果是session use cookie,使用file存储,一般就保留默认配置值,服务器以1/100的几率处理过期session,没必要每次请求都进行session gc处理
如果自己处理,你要删除过期session,总得遍历session保存目录的所有的session文件吧?你想想用户量如果很大,每个用户登录浏览服务器的页面,就会生成session文件,那得多少份session文件,然后遍历每个session文件,判断文件上次访问时间离当前时间是否超出了session_maxlife设置的时间,超过即删除。你如果用php去做这个工作,效率上不是更慢了吗!你还不如设置phpini的sessiongc_probability = 100和sessiongc_divisor = 100呢,但是一般不需要服务器接收每次>点击浏览器后退是不能清除session,可以用代码做到,sessionstorageclear(),在为后退事件调用这个代码,就是在后退时清空session了,但是好像火狐是不支持这样清空的,火狐可以试试 sessionstorageremoveItem('name'),name是存储时用的名字。session的清理是指把浏览器中的临时cookie(服务器也把这个对象移除并回收)清理掉,session的清空是把服务器上面session中引用对象全部丢掉引用。所以区别就在这里。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)