你除了在客户端上会使用Cookie,还能使用哪些可以作为数据缓存呢?

问题如标题,直奔主题.介绍下另两种缓存.

1.sessionStorage、localStorage 

localStorage: 是一种你不主动清除它,它会一直将存储数据存储在客户端的存储方式,即使你关闭了客户端(浏览器),属于本地持久层储存 

sessionStorage: 用于本地存储一个会话(session)中的数据,一旦会话关闭,那么数据会消失,比如刷新。 

有时候,我们需要将数据存储到sessionStorage和localStorage中,这样做的好处有:
1 缓存数据
2 减少对内存的占用
但是,storage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储。
它能保存更大的数据(IE8上是10MB,Chrome是5MB),同时保存的数据不会再发送给服务器,避免带宽浪费。

localStorage存储方法(sessionStorage类似) 存取清方式如下:

:
localStorage.name =’vanida;
localStorage[“name”]=’vanida’;
localStorage.setItem(“name”,”vanida”);
//这三种设置值方式是一样的;

:
localStorage获取值方法
var name = localStorage[“name”]
var name= localStorage.name
var name= localStorage.getItem(“name”);
//这三种获取值方式是一样的;

:
localStorage清除特定值方法
//清除name的值
localStorage.removeItem(“name”);
localStorage.name=”;
localStorage清除所有值方法
localStorage.clear()

对象转json存储:
localStorage只能存储字符串,如果需要存储对象,首先要转化为字符串。利用JSON.stringify();
var person = {name:”vanida”,”sex”:”girl”,”age”:25};
localStorage.setItem(“person”,JSON.stringify(person));
// localStorage.person=”{“name”:”vanida”,”sex”:”girl”,”age”:25}”
然后取出person的对象你可以用JSON.parse();
person = JSON.parse(localStorage.getItem(“person”));
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

下面是我写的cache.js:对原始进行局部封装:

//获取cookie的值
function getCookieVale(cookieObj, strCookie) {
    var cookieValu = "";
    strCookie = $.trim(strCookie);
    var arrCookie = cookieObj.split(";");
    for (var i = 0; i < arrCookie.length; i++) {
        var arr = arrCookie[i].split("=");
        if (strCookie == $.trim(arr[0])) {
            cookieValu = $.trim(arr[1]);
            break;
        }
    }
    return cookieValu;
}

//获取缓存信息
function getStory(itemCode) {
    return JSON.parse(sessionStorage.getItem(itemCode));
}
//删除缓存信息
function removeStory(itemCode) {
    sessionStorage.removeItem(itemCode);
}

//设置缓存信息
function setStory(itemCode, itemValu) {
    sessionStorage.setItem(itemCode, JSON.stringify(itemValu));
}
//清空session
function clearSessionStroy(){
    sessionStorage.clear();
}

function clearLoclStory(){
    localStorage.clear();
}

function getLoclStory(itemCode) {
    return JSON.parse(localStorage.getItem(itemCode));
}
//删除缓存信息
function removeLoclStory(itemCode) {
    localStorage.removeItem(itemCode);
}

//设置缓存信息
function setLoclStory(itemCode, itemValu) {
    localStorage.setItem(itemCode, JSON.stringify(itemValu));
}

 

转载于:https://www.cnblogs.com/ysq0908/p/11455067.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现cookie缓存数据和7天免登录功能的一种流程和思路如下: 1. 设置cookie:当用户登录成功后,服务器生成一个具有唯一标识的cookie,并将该cookie设置到响应头中,通过响应返回给客户端,同时在服务器端存储该cookie和对应的用户信息。 2. cookie存储数据:可以使用服务器端的session机制将用户信息存储到内存中,或者将用户信息存储到数据库或缓存中,并将该数据cookie进行关联。 3. cookie缓存数据:在服务器端,根据请求头中的cookie信息,获取对应的cookie值,解析出唯一标识,并根据唯一标识在服务器端获取用户相关数据,然后返回给客户端。 4. 7天免登录功能:在用户登录时,服务器将生成的cookie设置过期时间为7天,并将该cookie存储起来。当用户再次访问网站时,服务器获取请求头中的cookie信息,如果存在有效的cookie并且未过期,则自动登录用户。 5. cookie的过期处理:通过在服务器端对cookie的过期时间进行判断,如果cookie过期,则需要用户重新登录。 6. 安全性考虑:为了提高系统的安全性,可以对cookie进行加密处理,保护用户信息的安全;同时,加入防护机制,如验证码等,防止恶意登录。 总结:通过设置cookie来实现数据缓存和7天免登录功能,可以提升用户体验,减少重复登录的操作。但需要注意保证cookie的安全性,防止恶意利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值