二十一天学通JavaScript:cookie的生存期
二十一天学通JavaScript:cookie的生存期
本文节选自《21天学通JavaScript》一书
在默认情况下,cookie是临时存在的。在一个浏览器窗口打开时,可以设置cookie,只要该浏览器窗口没有关闭,cookie就一直有效,而一旦浏览器窗口关闭后,cookie也就随之消失。
如果想要cookie在浏览器窗口关闭之后还能继续使用,就需要为cookie设置一个生存期。所谓生存期也就是cookie的终止日期,在这个终止日期到达之前,浏览器随时都可以读取该cookie。一旦终止日期到达之后,该cookie将会从cookie文件中删除。
【范例14-5】设置cookie的生存期,如示例代码14-5所示。
示例代码14-5
01 <title>cookie的生存期</title> <!--文档的标题-->
02 cookie名:
03 <input type="text" name="Name"> <!- cookie名的文本框-->
04 <br> <!-换行-->
05 cookie值:
06 <input type="text" name="Value"> <! cookie值的文本框- -->
07 <br> <!-换行-->
08 cookie时间:
09 <select name="Time" size="1"> <!-选择列表组合框-->
10 <option value="1">一天</option> <!-列表项1-->
11 <option value="2">二天</option> <!-列表项2-->
12 <option value="3">三天</option> <!-列表项3-->
13 <option value="4">四天</option> <!-列表项4-->
14 <option value="5">五天</option> <!-列表项5-- >
15 <option value="6">六天</option> <!-列表项6-->
16 <option value="7">七天</option> <!-列表项7-->
17 <option value="8">八天</option> <!-列表项8 -->
18 </select>
19 <script language="JavaScript" type="text/javascript">
20 <!--
21 function setCookie()
22 {
23 //以下三句是获取客户输入的信息:cookie变量的值、名和保存时间
24 n=Time.value; //cookie变量的保存时间
25 var name=Name.value; //cookie变量的名
26 var psd=Value.value; //cookie变量的值
27 if(name!="")
28 {
29 var date=new Date(); //获取当前时间
30 var expireDays=n*24*3600*1000; //将date设置为n天以后的时间
31 date.setTime(date.getTime()+expireDays);
32 //将userId和userName两个cookie设置为10天后过期
33 document.cookie=name+"=;" +escape(psd)+"; expire="+date.toGMTString ();
34 alert("设置成功!时间为:"+expireDays+"秒("+n+"天)"); //输出信息
35 }
36 else
37 {
38 alert("设置失败,cookie变量名不能为空"); //提示用户设置失败
39 }
40 }
41 //-->
42 </script> //JavaScript标签的结束
43 <input type="submit" name="Submit" value="设置cookie" onClick="setCookie()">
【运行结果】打开网页文件运行程序。
【代码解析】这个例子演示了设置cookie存活时间的方法。主要是学习expire参数的使用。代码第29~32行是设置时间的过程,第33行是本例的关键,演示了如何使用expire参数。
注意:cookie可能会由于浏览器的关闭而消失,因此,不宜采用cookie来保存比较重要的信息。