创建和存储 cookie

在这个例子中我们要创建一个存储访问者名字的 cookie。当访问者首次访问网站时,他们会被要求填写姓名。名字会存储于 cookie 中。当访问者再次访问网站时,他们就会收到欢迎词。

首先,我们会创建一个可在 cookie 变量中存储访问者姓名的函数:

function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

上面这个函数中的参数存有 cookie 的名称、值以及过期天数。

在上面的函数中,我们首先将天数转换为有效的日期,然后,我们将 cookie 名称、值及其过期日期存入 document.cookie 对象。

之后,我们要创建另一个函数来检查是否已设置 cookie:

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    }
  }
return ""
}

上面的函数首先会检查 document.cookie 对象中是否存有 cookie。假如 document.cookie 对象存有某些 cookie,那么会继续检查我们指定的 cookie 是否已储存。如果找到了我们要的 cookie,就返回值,否则返回空字符串。

最后,我们要创建一个函数,这个函数的作用是:如果 cookie 已设置,则显示欢迎词,否则显示提示框来要求用户输入名字。

function checkCookie()
{
username=getCookie(‘username‘)
if (username!=null && username!="")
  {alert(‘Welcome again ‘+username+‘!‘)}
else
  {
  username=prompt(‘Please enter your name:‘,"")
  if (username!=null && username!="")
    {
    setCookie(‘username‘,username,365)
    }
  }
}

这是所有的代码:

<html>
<head>
<script type="text/javascript">
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    }
  }
return ""
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

function checkCookie()
{
username=getCookie(‘username‘)
if (username!=null && username!="")
  {alert(‘Welcome again ‘+username+‘!‘)}
else
  {
  username=prompt(‘Please enter your name:‘,"")
  if (username!=null && username!="")
    {
    setCookie(‘username‘,username,365)
    }
  }
}
</script>
</head>

<body onLoad="checkCookie()">
</body>
</html>
时间: 2024-10-13 22:54:57

创建和存储 cookie的相关文章

JS创建和存储 cookie一些方法总结

在js中cookie的操作与存储及清除cookie都与时间有关,我们只要把cookie过期时间进行有效的设置我们就可以控制它的存储了,下面我来给大家总结一下js中cookie的一些使用技巧 创建和存储 cookie 在这个例子中我们要创建一个存储访问者名字的 cookie.当访问者首次访问网站时,他们会被要求填写姓名.名字会存储于 cookie 中.当访问者再次访问网站时,他们就会收到欢迎词. 首先,我们会创建一个可在 cookie 变量中存储访问者姓名的函数: function Setcook

客户端存储cookie ---(优缺点及定义及用途)

什么是cookie cookie是存储于访问者计算机中的变量 cookie是浏览器提供的一种机制,可以由JavaScript对其进行操作(设置.读取.删除) cookie的特性 cookie可以实现跨页面全局变量 cookie可以跨越同域名下的多个网页,但不能跨域使用 同一个网站中所有页面共享一套cookie 可以设置有效期限 存储空间为4KB左右 cookie的优点 cookie可以跨越同域名下的多个网页使用 cookie可以实现跨页面全局变量 同一个网站中所有页面共享一套cookie 可以设

常用的本地存储-----cookie篇

1.引言 随着浏览器的处理能力不断增强,越来越多的网站开始考虑将数据存储在「客户端」,那么久不得不谈本地存储了. 本地存储的好处: 一是避免取回数据前页面一片空白,如果不需要最新数据也可以减少向服务器的请求次数,从而减少用户等待从服务端获取数据的时间. 二是网络状态不佳时仍可以显示离线数据. 2.本地存储 用chrome浏览器打开一个网页,F12进入开发者模式,点击Application,我们可以看到: 以上的Local Stroage . Session Stroage . IndexedDB

Android本地化存储Cookie(针对HttpClient)

因为最近有人问我怎么保存HttpClient的Cookie, 所以这里写下, 顺便记录总结吧. 当然, 有Android网络编程经历的童鞋一看就懂喇~ 就不多说了, 直接上代码: /** * 本地存储Cookie * @param response */ private void saveCookies(HttpResponse response) { SharedPreferences preferences = getSharedPreferences("cookies", MOD

mvc存储Cookie和读取Cookie方法

mvc存储Cookie和读取Cookie方法: //存储 HttpCookie cookie = new HttpCookie("User"); System.Text.Encoding enc = System.Text.Encoding.GetEncoding("gb2312"); cookie["id"] = HttpUtility.UrlEncode(logid.ToString(), enc); cookie["UserNam

《Java程序员面试笔试宝典》之字符串创建与存储的机制是什么

在Java语言中,字符串起着非常重要的作用,字符串的声明与初始化主要有如下两种情况:(1) 对于String s1=new String("abc")语句与String s2=new String("abc")语句,存在两个引用对象s1.s2,两个内容相同的字符串对象"abc",它们在内存中的地址是不同的.只要用到new总会生成新的对象. (2) 对于String s1 = "abc"语句与String s2 = "

基于catalog 创建RMAN存储脚本

--============================== -- 基于catalog 创建RMAN存储脚本 --============================== 简言之,将rman的备份恢复命令写成脚本并保存在恢复目录内,恢复目录内的脚本可用性及通用性高于基于文件系统的脚本. 客户端只要能够登录到RMAN恢复目录,则这些脚本可用,尤其对于global脚本,可以被任意注册的数据库调度. 一.脚本的分类 local : 在rman连接的目标数据库下创建的脚本,此类脚本仅仅适用于当前

Azure技术08-虚拟机-创建高性能存储,并创建DS系列虚拟机

在使用Azure虚拟机过程中,不免遇到一些应用对磁盘IOPS要求非常高,针对高IOPS要求的应用,我们在以前只能通过Windows系统层面创建RAID的方式来提升磁盘性能,其实Azure高级存储Premium Storage在今年上半年就已经正式向广大用户推出,亮点在于Premium Storage服务采用SSD,并能够带来最高32TB存储容量以及每个VM高达64000 IOPS(即每秒IO操作次数). 在Azure Portal上现在是不支持图形化界面来创建Premium Storage的,所

使用 Azure PowerShell 创建高级存储帐户

本文介绍如何使用 Azure PowerShell 来创建高级存储帐户以及如何使用它. 在Powershell中运行如下命令 New-AzureStorageAccount -StorageAccountName "hcjpremium" -Location "China East" -Type "Premium_LRS" 登录portal可以看到已经创建好的高级存储 然后执行如下命令,设置为当前要使用的存储 . Set-AzureSubscri