JavaScript之cookie技术详解


Posted in Javascript onNovember 18, 2016

运用JS设置cookie、读取cookie、删除cookie
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。

而cookie是运行在客户端的,所以可以用JS来设置cookie.

假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和读取cookie呢?
首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。

JS设置cookie:

假设在A页面中要保存变量username的值(“jack”)到cookie中,key值为name,则相应的JS代码为:
document.cookie="name="+username; 

JS读取cookie:
假设cookie中存储的内容为:name=jack;password=123

则在B页面中获取变量username的值的JS代码如下:

var username=document.cookie.split(";")[0].split("=")[1]; 

//JS操作cookies方法!

//写cookies

function setCookie(name,value) 
{ 
  var Days = 30; 
  var exp = new Date(); 
  exp.setTime(exp.getTime() + Days*24*60*60*1000); 
  document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
}

//读取cookies 
function getCookie(name) 
{ 
  var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");

  if(arr=document.cookie.match(reg))

    return unescape(arr[2]); 
  else 
    return null; 
}

//删除cookies 
function delCookie(name) 
{ 
  var exp = new Date(); 
  exp.setTime(exp.getTime() - 1); 
  var cval=getCookie(name); 
  if(cval!=null) 
    document.cookie= name + "="+cval+";expires="+exp.toGMTString(); 
} 
//使用示例 
setCookie("name","hayden"); 
alert(getCookie("name"));

//如果需要设定自定义过期时间 
//那么把上面的setCookie 函数换成下面两个函数就ok;


//程序代码 
function setCookie(name,value,time)
{ 
  var strsec = getsec(time); 
  var exp = new Date(); 
  exp.setTime(exp.getTime() + strsec*1); 
  document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
} 
function getsec(str)
{ 
  alert(str); 
  var str1=str.substring(1,str.length)*1; 
  var str2=str.substring(0,1); 
  if (str2=="s")
  { 
    return str1*1000; 
  }
  else if (str2=="h")
  { 
    return str1*60*60*1000; 
  }
  else if (str2=="d")
  { 
    return str1*24*60*60*1000; 
  } 
}
//这是有设定过期时间的使用示例: 
//s20是代表20秒 
//h是指小时,如12小时则是:h12 
//d是天数,30天则:d30

setCookie(“name”,”hayden”,”s20”);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
Sep 22 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
JQuery实现的图文自动轮播效果插件
Jun 19 Javascript
javascript 中的 delete及delete运算符
Nov 15 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
Vue.js tab实现选项卡切换
May 16 Javascript
详解基于vue的服务端渲染框架NUXT
Jun 20 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 Javascript
js前端解决跨域问题的8种方案(最新最全)
Nov 18 #Javascript
js前端实现多图图片上传预览的两个方法(推荐)
Nov 18 #Javascript
js实时获取窗口大小变化的实例代码
Nov 18 #Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 #Javascript
整理一下常见的IE错误
Nov 18 #Javascript
require、backbone等重构手机图片查看器
Nov 17 #Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
Nov 17 #Javascript
You might like
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
php 获取本地IP代码
2013/06/23 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
php实现无限级分类
2014/12/24 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP7新特性
2021/03/09 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
chrome调试javascript详解
2015/10/21 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
批处理与python代码混合编程的方法
2016/05/19 Python
Python 异常处理的实例详解
2017/09/11 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
自我评价格式
2014/01/06 职场文书
创新社会管理心得体会
2014/09/12 职场文书
小学生毕业评语
2014/12/26 职场文书
停课通知书
2015/04/24 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python