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 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
Javascript的常规数组和关联数组对比小结
May 24 Javascript
使用javascript创建快捷方式的简单实例
Aug 09 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
js实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
Javascript访问器属性实例分析
Dec 30 Javascript
详解AngularJS中自定义指令的使用
Jun 17 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 Javascript
Angular(5.2->6.1)升级小结
Dec 27 Javascript
vue data对象重新赋值无效(未更改)的解决方式
Jul 24 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
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
jquery 表格的增行删行实现思路
2013/03/21 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
详解VUE 数组更新
2017/12/16 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
Python线程的两种编程方式
2015/04/14 Python
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python聊天室实例程序分享
2016/01/05 Python
一百多行python代码实现抢票助手
2018/09/25 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
使用python实现简单五子棋游戏
2019/06/18 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
python实现吃苹果小游戏
2020/03/21 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
面料业务员岗位职责
2013/12/26 职场文书
企业法人代表证明书
2014/09/27 职场文书
老干部座谈会主持词
2015/07/03 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
《静夜思》教学反思
2016/02/17 职场文书