在页面退出的时候删除Cookies???

HolyPlace 2009-02-24 04:25:03
想在页面退出的时候删除Cookies,在js中当页面关闭前发送一个ajax请求,但是时间太短我在后台的清空还没有执行怎么办?
还有那种清空Cookies的方法最好?
...全文
689 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
HolyPlace 2009-02-24
  • 打赏
  • 举报
回复
明白你说的什么意思了,谢谢。
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
利用常见的ajax框架都可以,没什么难度
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
那没什么难度,无非就是类似于异步登陆程序样的,这个网上很多可以参考的程序,请自行搜索。
HolyPlace 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jimu8130 的回复:]
请问你试验过没有?
我以前用过类似你这样的判断,但是效果不太好

假如试验通过的话,那你可以考虑在这个事件里面发出一个异步请求,然后得到响应后才return true;否则return;
[/Quote]
按照你这个可以写个实例吗?代码片段就可以了,谢谢
bj890 2009-02-24
  • 打赏
  • 举报
回复
up
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
引用 8 楼 jimu8130 的回复:
页面关闭的事件和刷新事件不容易区分,因此你说的不太现实


可以在用户请求页面的时候设置cookie过期时间
只要用户有动作,过期时间就会加长
----------------
但是这个时间设置长了不好,设置短了也不好,两难。
路人乙e 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jimu8130 的回复:]
页面关闭的事件和刷新事件不容易区分,因此你说的不太现实
[/Quote]

可以在用户请求页面的时候设置cookie过期时间
只要用户有动作,过期时间就会加长
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
请问你试验过没有?
我以前用过类似你这样的判断,但是效果不太好

假如试验通过的话,那你可以考虑在这个事件里面发出一个异步请求,然后得到响应后才return true;否则return;

HolyPlace 2009-02-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jimu8130 的回复:]
页面关闭的事件和刷新事件不容易区分,因此你说的不太现实
[/Quote]
可以区分刷新和关闭事件的
function window.onbeforeunload()
{
if (event.clientX>document.body.clientWidth && event.clientY<0||event.altKey)

{
window.event.returnValue="确定要退出本页吗?";
}

}

金大哈 2009-02-24
  • 打赏
  • 举报
回复
up 如果能和C/S一样就好了

窗口关闭事件里那样方便就好了
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
页面关闭的事件和刷新事件不容易区分,因此你说的不太现实
HolyPlace 2009-02-24
  • 打赏
  • 举报
回复
我的Cookies是在后台操作的,禁止了前台页面的获取。
能让页面关闭前的哪个函数等待吗?
hhxxcj 2009-02-24
  • 打赏
  • 举报
回复
//[DateTime] is Cookie 过期日期和时间。
Cookie.Expires=[DateTime];

or

Cookie.Finalize();
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
http://num7.javaeye.com/blog/225163
please ref
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
JavaScript使用面向对象思想处理cookie2006年6月8日 10:53:05 发布:yaosansi 本站大部分内容从网上收集,收集目的仅供研究、学习。

对于cookie的处理,事实上只是封装一些方法,每个对象不会有状态,所以不需要创建一个cookie处理类,而只用一个全局对象来联系这些cookie操作。对象名可以理解为命名空间。对cookie操作经常以下操作。
(1)设置cookie包括了添加和修改功能,事实上如果原有cookie名称已经存在,那么添加此cookie就相当于修改了此cookie。在设置cookie的时候可能还会有一些可选项,用于指定cookie的声明周期、访问路径以及访问域。为了让cookie中能够存储中文,该方法中还需要对存储的值进行编码。
(2)删除一个cookie,删除cookie只需将一个cookie的过期事件设置为过去的一个时间即可,它接收一个cookie的名称为参数,从而删除此cookie。
(3)取一个cookie的值,该方法接收cookie名称为参数,返回该cookie的值。因为在存储该值的时候已经进行了编码,所以取值时应该能自动解码,然后返回。
针对这些需求,下一小节将实现这些功能。
创建Cookie对象
因为是作为类名或者命名空间的作用,所以和Math对象类似,这里使用Cookie来表示该对象:
var Cookie=new Object();
实现设置Cookie的方法
方法为:setCookie(name,value,option);其中name是要设置cookie的名称;value是设置cookie的值;option包括了其他选项,是一个对象作为参数。其实现如下:
Cookie.setCookie=function(name,value,option){
//用于存储赋值给document.cookie的cookie格式字符串
var str=name+"="+escape(value);
if(option){
//如果设置了过期时间
if(option.expireDays){
var date=new Date();
var ms=option.expireDays*24*3600*1000;
date.setTime(date.getTime()+ms);
str+="; expires="+date.toGMTString();
}
if(option.path)str+="; path="+path; //设置访问路径
if(option.domain)str+="; domain"+domain; //设置访问主机
if(option.secure)str+="; true"; //设置安全性
}
document.cookie=str;
}
实现取Cookie值的方法
方法为:getCookie(name);其中name是指定cookie的名称,从而根据名称返回相应的值。实现如下:
Cookie.getCookie=function(name){
var cookieArray=document.cookie.split("; "); //得到分割的cookie名值对
var cookie=new Object();
for(var i=0;i<cookieArray.length;i++){
var arr=cookieArray[i].split("="); //将名和值分开
if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,则返回它的值
}
return "";
}

实现删除Cookie的方法
方法为:deleteCookie(name);其中name是指定cookie的名称,从而根据这个名称删除相应的cookie。在实现中,删除cookie是通过调用setCookie来完成的,将option的expireDays属性指定为负数即可:
Cookie.deleteCookie=function(name){
this.setCookie(name,"",{expireDays:-1}); //将过期时间设置为过去来删除一个cookie
}
通过下面的代码,整个Cookie对象创建完毕后,可以将其放到一个大括号中来定义,例如:
var Cookie={
setCookie:function(){},
getCookie:function(){},
deleteCookie:function(){}
}
通过这种形式,可以让Cookie的功能更加清晰,它作为一个全局对象,大大方便了对Cookie的操作,例如:
Cookie.setCookie("user","jack");
alert(Cookie.getCookie("user"));
Cookie.deleteCookie("user");
alert(Cookie.getCookie("user"));
上面的代码就先建立了一个名为user的cookie,然后删除了该cookie。两次alert输出语句显示了执行的效果。
本节通过建立一个Cookie对象来处理cookie,方便了操作,也体现了面向对象的编程思想:把相关的功能封装在一个对象中。考虑到JavaScript语言的特点,本章没有选择需要创建类的面向对象编程的例子,那和一般面向对象语言没有大的不同。而是以JavaScript中可以直接创建对象为特点介绍了Cookie对象的实现及其工作原理。事实上这也和JavaScript内部对象Math的工作原理是类似的。
机器人 2009-02-24
  • 打赏
  • 举报
回复
function delCookie(name)//删除cookie
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
jimu8130 2009-02-24
  • 打赏
  • 举报
回复
js同样可以操作cookie的
the_pain 2009-02-24
  • 打赏
  • 举报
回复
up

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧