js中cookie、sessionStorage、localStorage
一、cookie
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" name="username" id="username" value="">
<input type="password" name="password" id="password" value="">
<button type="button" name="button" id="btn">删除cookie</button>
<script type="text/javascript">
// 1、设置、获取
var d = new Date();
d.setHours(d.getHours() + 1);//1小时后过期
// path=/ 此时的/代表的是网站中所有的目录都可以访问这个cookie
document.cookie='username=zhangsan;expires='+d.toUTCString()+";path=/";//设置cookie
document.cookie;//获取所有的cookie
console.log(document.cookie) // 2.设置、获取、删除cookie
// setCookie('password','123456',0.5*3600*1000)//30分钟后失效
// setCookie('username','zhangsan',0.5*3600*1000)//30分钟后失效
var btnObj = document.getElementById('btn')
btnObj.onclick = function(){
delCookie('username');
delCookie('password');
}
function setCookie(name,value,expires){
//计算有效期
var d = new Date();
//设置有效期
d.setTime(d.getTime()+expires);
//设置cookie
document.cookie = name +'='+value+';expires='+d.toUTCString();
}
function getCookie(name) {
//获取cookie
var cookieStr = document.cookie;
//根据;拆分
var cookieArr = cookieStr.split(';');
//获取对应的cookie值
name += '=';//获取的cookie值都是后面有=
var result = '';
for(var i=0;i<cookieArr.length;i++) {
//没一个cookie值得前面都有一个空格,将空格删除,再去查找对应的name值
var tmp = cookieArr[i].trim();
if(tmp.indexOf(name) == 0) {
//如果查找成功,则直接返回
result = tmp.slice(name.length);
break;
}
}
//返回结果
return result;
}
function delCookie(name) {
var d = new Date();
d.setTime(d.getTime()-1000);
document.cookie = name+'=;expires='+d.toUTCString();
}
</script>
</body>
</html>
二、sessionStorage
【
html5新增的会话存储对象;
生命周期:关闭窗口或标签页之后将会删除这些数据
存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
】
使用方法:
string sessionStorage.getItem(string key) :返回键名(key)对应的值(value)。若没有返回null。
void sessionStorage.setItem(string key, string value) :该方法接受一个键名(key)和值(value)作为参数,将键值对添加到存储中;如果键名存在,则更新其对应的值。
void sessionStorage.removeItem(string key) :将指定的键名(key)从 sessionStorage 对象中移除。
void sessionStorage.clear() :清除 sessionStorage 对象所有的项。
sessionStorage.setItem('username','admin') //存储数据
sessionStorage.getItem('username')//获取
sessionStorage.clear();//清楚所有
sessionStorage.removeItem('username')//清楚指定
也可以存储JSON对象【JSON.stringify(obj)和JSON.parse(stry)】
eg:
var obg = {
name:'tom',
age:22
};
//存储值:将对象转换为Json字符串
sessionStorage.setItem('user',JSON.stringify(obj));
//取值时:把获取到的Json字符串转换回对象
var userJsonStr = sessionStorage.getItem('user');
userObj = JSON.parse(userJsonStr);
console.log(userObj.name);//tom
js中cookie、sessionStorage、localStorage的更多相关文章
- js中cookie,localStorage(sessionStorage)的存取
一.cookie (原生的不好用,自己简单封装) 1. 存cookie的方法: function setCookie(c_name,value,expiredays) { var exdate=new ...
- JS中Cookie、localStorage、sessionStorage三者的区别
cookie:大小4k,一般由服务器生成,可设置失效时间,关闭浏览器后失效,与服务器通信时:每次都会携带HTTP头中,如果使用cookie保存过多数据会带来性能问题 localhostStorage: ...
- session,cookie,sessionStorage,localStorage的区别及应用场景
session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟 ...
- 缓存session,cookie,sessionStorage,localStorage的区别
https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...
- 彻底弄清楚session,cookie,sessionStorage,localStorage的区别及应用场景(面试向)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_94 客户端状态保持是一个老生常谈的问题了,归根结底追踪浏览器的用户身份及其相关数据无非就是以下四种方式:session,cooki ...
- session,cookie,sessionStorage,localStorage的相关设置以及获取删除
一.cookie 什么是 Cookie? "cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScrip ...
- js中cookie的使用
js中并没有封装好的存储cookie,取得cookie和删除cookie的函数,所以必须得自己手动处理,并且cookie中也只能存储字符串,不能存储数组等复杂的数据类型. // 添加cookie fu ...
- js中cookie操作
js中操作Cookie的几种常用方法 * cookie中存在域的概念,使用path和domain区分: * 在同一域中的set和del可以操作同一名称的cookie,但不在同一域中的情况下,则set无 ...
- js 中cookie 使用
一个系统有多种 角色, 每一种角色不同权限.后台请求的数据根据权限展示 ,所以要把权限保存在浏览器中. 首先 引入 在页面 <script type="text/javascript& ...
- jquery.cookie.js中$.cookie() 使用方法
定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jquery.coo ...
随机推荐
- 如何用纯 CSS 创作一副国际象棋
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/WyXrjz 可交互视频 ...
- 【laravel】laravel class 里面定义以head开头的方法会报错
BadMethodCallException in Macroable.php line 81:Method head does not exist.
- 流程控制之while循环for循环
流程控制之while循环1.什么是循环 循环就是重复做某件事2.为什么要有循环 为了让计算机能够具备人重复做某件事的能力3.如何用循环 while语法: while 条件: code1 code2 c ...
- python 类的封装/property类型/和对象的绑定与非绑定方法
目录 类的封装 类的property特性 类与对象的绑定方法与非绑定方法 类的封装 封装: 就是打包,封起来,装起来,把你丢进袋子里,然后用绳子把袋子绑紧,你还能拿到袋子里的那个人吗? 1.隐藏属性和 ...
- Wannafly挑战赛21 机器人
从前在月球上有一个机器人.月球可以看作一个 n*m 的网格图,每个格子有三种可能:空地,障碍,机器人(有且仅有一个),现在地面指挥中心想让机器人在月球上行走,每次可以发送一个指令,为 U-往上走.D- ...
- STM8 EEPROM心得
对于STM8来说,其内部的EEPROM确实是个不错的东西,而且STM8S103/105价格已经非常便宜了,当然也可以用STM8S003/005代替,而且价格更便宜,大概在,1.2/2.0元左右,比10 ...
- HDU 5047 Sawtooth 高精度
题意: 给出一个\(n(0 \leq n \leq 10^{12})\),问\(n\)个\(M\)形的折线最多可以把平面分成几部分. 分析: 很容易猜出来这种公式一定的关于\(n\)的一个二次多项式. ...
- HDU 5536 Chip Factory Trie
题意: 给出\(n(3 \leq n \leq 1000)\)个数字,求\(max(s_i+s_j) \bigoplus s_k\),而且\(i,j,k\)互不相等. 分析: 把每个数字看成一个\(0 ...
- 《变革之心》读后感——《Scrum实战》第2次课作业
刚读了几篇序言.导言和第一个故事,因此读后感可能不全面,先写一下一点儿感受吧. <变革之心>讲的是组织变革,而组织变革是以个人变革为基础的,本书的观点就是在个人变革上,“目睹--感受--变 ...
- Zipkin和微服务链路跟踪
https://cloud.tencent.com/developer/article/1082821 Zipkin和微服务链路跟踪 本期分享的内容是有关zipkin和分布式跟踪的内容. 首先,我们还 ...