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 相关文章推荐
JSON.stringify 语法实例讲解
Mar 14 Javascript
拉动滚动条加载数据的jquery代码
May 03 Javascript
JS解决url传值出现中文乱码的另类办法
Apr 08 Javascript
JS实现拖动示例代码
Nov 01 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
jQuery中事件与动画的总结分享
May 24 Javascript
Angularjs 设置全局变量的方法总结
Oct 20 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
Dec 13 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
通过实例解析jQ Ajax操作相关原理
Sep 23 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
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
php目录拷贝实现方法
2015/07/10 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
如何在sublime编辑器中安装python
2020/05/20 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
华为慧通笔试题
2016/04/22 面试题
公司企业表扬信
2014/01/11 职场文书
医药个人求职信范文
2014/01/29 职场文书
美术毕业生求职信
2014/02/25 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
企业节能减排实施方案
2014/03/19 职场文书
护理工作个人总结
2015/03/03 职场文书
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python
小程序自定义轮播图圆点组件
2022/06/25 Javascript