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 相关文章推荐
由document.body和document.documentElement想到的
Apr 13 Javascript
JS实现self的resend
Jul 22 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
Dec 08 Javascript
JavaScript汉诺塔问题解决方法
Apr 21 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
Jun 15 Javascript
js实现本地时间同步功能
Aug 26 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
微信小程序版本自动更新的方法
Jun 14 Javascript
JS运算符优先级与表达式示例详解
Sep 04 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python实现的弹球小游戏示例
2017/08/01 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
如何利用Python识别图片中的文字
2020/05/31 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
大学班级干部的自我评价分享
2014/02/10 职场文书
团日活动总结书
2014/05/08 职场文书
物业管理工作方案
2014/05/10 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
歌舞青春观后感
2015/06/10 职场文书
电影雨中的树观后感
2015/06/15 职场文书