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 相关文章推荐
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
Nov 06 Javascript
Easyui 之 Treegrid 笔记
Apr 29 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
Bootstrap Validator 表单验证
Jul 25 Javascript
JS实现的加减乘除四则运算计算器示例
Aug 09 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
微信小程序网络封装(简单高效)
Aug 06 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
微信小程序功能之全屏滚动效果的实现代码
Nov 22 Javascript
JavaScript命令模式原理与用法实例详解
Mar 10 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
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
Jquery 表格合并的问题分享
2011/09/17 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书