html5本地存储技术sessionStorage和localStorage方法介绍

在Html5之前浏览器存储数据,尤其是用户浏览器的痕迹,以及用户的相关数据等一般只能存储在Cookie中,但是Cookie的限制也就逼迫网站存储数据尽量精简,复杂的、关系型的用户数据就根本不可能存储了。cookie的限制是(4096字节)
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。

一、sessionStorage会话级别的本地存储

sessionStorage;是浏览器中的的会话级别的WebStorage。存储在sessionStorage中的数据首先是Key-Value形式的,生命周期为关闭浏览器窗口,窗口关闭后数据会自动清除,效果跟未设置过期时间的Cookie类似。在同一个窗口(页面)下数据可以共享。
sessionStorage的容量约为5M。
sessionStorage提供了四个方法:
1、 setItem(key, value) 设置存储内容
2、getItem(key) 读取存储内容
3、 removeItem(key) 删除键值为key的存储内容
4、 clear() 清空所有存储内容慎用
html5本地存储技术sessionStorage和localStorage方法介绍
二、localStorage永久级别的本地存储

localStorage 是浏览器中存储永久存储的Web端的数据。而且数据不会随着Http请求发送到后台服务器,它永久的存储在浏览器中(除非手动删除)可以多窗口 (页面)共享。
localStorage的容量为20M,这完全是颠覆了Cookie的限制,
localStorage提供了四个方法(和sessionStorage方法一样):
1、 setItem(key, value) 设置存储内容
2、getItem(key) 读取存储内容
3、 removeItem(key) 删除键值为key的存储内容
4、 clear() 清空所有存储内容慎用
html5本地存储技术sessionStorage和localStorage方法介绍
html5本地存储技术sessionStorage和localStorage方法介绍
使用案例:

 var historyListStr = localStorage.getItem('historyList') || '[]';
        var historyArr = JSON.parse(historyListStr);
        var render = function () {
            var html = '';
            historyArr.forEach(function (item, i) {
                html += "<li><span>" + item + "</span><a data-index=" + i + " href=\"javascript:;\">删除</a></li>"
            });
            html = html || " <li>没有搜索记录</li>";
            $("ul").html(html);
        }
        render();
        $("[type='button']").on("click", function () {
            var val = $.trim($("[type='search']").val());
            if (!val) {
                alert("请输入关键字");
                return false;
            }
            historyArr.push(val);
            localStorage.setItem('historyList', JSON.stringify(historyArr));
            render();
            $("[type='search']").val('');
        })
        //2.单个删除
        $("ul").on("click", "a", function () {
            var index = $(this).data("index");
            historyArr.splice("index", 1);
            localStorage.setItem('historyList', JSON.stringify(historyArr));
            render();
        })
        //3.清空
        $("div").on("click", "a", function () {
            historyArr = [];
            localStorage.setItem('historyList', '');
            render();
        })

html5本地存储技术sessionStorage和localStorage方法介绍