欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTML5 web存储

程序员文章站 2022-06-10 09:38:13
...

HTML5 web存储

1 Cookie:

特点:
键值对的形式存储数据
在本地浏览器存储数据
有效期:未来的事件(expires)
存储数据的容量:<4kb
所有的http请求都会带上cookie信息,(联想HTTPget请求可以传递的数据),从某种意义上来说,用cookie存储不是那么安全

2.1用法

2.1.1保存数据

localStorage.setItem("key",value);
setitem(key,value)有两个参数,第一个参数是存储数据的键名,第二个参数是存储数据的值。

2.1.2获取数据

localStorage.getItem("key");
getIntem(k);只有一个参数,该参数是获取数据的键名

2.1.3删除指定键名的数据

localStorage.removeItem("age");
removeItem(k);根据指定的键名删除数据,

2.1.4清除

localStorage.clear();
clear();清除所有存储在localStorage的数据
注意:key写具体的时候,要加””;
localStorage存储的数据没有时间限制

<body>
<form>
    <label for="username">姓名</label>
    <input id="username" type="text"/><br/>
    <label for="age">年龄</label>
    <input id="age" type="text"/><br/>
    <button id="saveBtn">保存数据</button>
    <button id="removeBtn">删除数据</button>
    <button id="getBtn">获取数据</button>
</form>
</body>
<script src="../assert/jquery-1.9.1.min.js"></script>
<script>
    //保存数据
    $("#saveBtn").click(function () {
        var username = $("#username").val();    //        姓名
        localStorage.setItem("name",username);
        var age = $("#age").val();  //        年龄
        localStorage.setItem("age",age);
    });
    //删除数据
    $("#removeBtn").click(function () {
        //单个删除
//        localStorage.removeItem("name");
//        localStorage.removeItem("age");
        //一次性删除
        localStorage.clear();
    });
    //获取数据
    $("#getBtn").click(function () {
        var value = localStorage.getItem("age");
        alert(value)
    });
</script>

3 sessionStorage

sessionStorage的运行方式与localStorage的方式一样,唯一不同的而是sessionStorage存储的数据的有效期仅对当前的浏览器(或页面)有效,一旦关闭,之前存储的内容也就没有了

4 区别

特性 cookie localStorage sessionStprage
生命周期 根据设置的事件 除非被清除,否则永远存在 浏览器一关闭,就没了
存储容量 <4K 5Mb 5Mb
和服务器通讯(http) 每次请求都会带上cookie 只保持在浏览器,和服务器没有半毛钱关系 只保持在浏览器,和服务器没有半毛钱关系
易用性 接口不大友好(参数需要自个拼接) 接口还可以接受!对于object、array等类型的数据存储比较麻烦 接口还可以接受!对于object、array等类型的数据存储比较麻烦

5 存储对象

Storage只能存储字符串,不能存储对象或者数组,如果要存储的话,,必须经过转换,通过JSON对象中的stringify()将对象转换为字符串
var str = JSON.stringify(informaction); //转换为字符串
将对象转换为字符串,然后进行存储,同样的也可以通过JSON对象中的parse()将对象进行解析
var result = JSON.parse(str); //解析对象

5.1 JSON.parese();将字符串转换为对象

5.2 JSON.stringify();将对象转换为字符串
5.3解决问题
(1)localStorage/sessionStorage存数据
先将需要存储的对象→字符串JSON.Stringify()
存储该字符串
(1)localStorage/sessionStorage读数据
先将需要读取的字符串→对象 JSON.parese()

$("#saveBtn").click(function () {
    var username = $("#username").val();
    var age = $("#age").val();
    var informaction = new Object();    //创建对象
    informaction.username = username;   //将姓名存入对象
    informaction.age = age;     //将年龄存入对象
    var str = JSON.stringify(informaction); //转换为字符串
    var result = JSON.parse(str);   //解析对象
    localStorage.setItem("",str);
});
//从本地缓存里面拿出数据,同时拿出的数据有可能是空的,所以需要||"[]"
var _history = localStorage.getItem(historyCityKey) ||"[]";
var historyCity=JSON.parse(_history);
return historyCity;