w3h5

sessionStorage和localStorage的语法使用,区别和联系

HTML5 提供了两种客户端存储数据的新方法:

localStorage - 没有时间限制的数据存储

sessionStorage - 针对一个 session 的数据存储

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

HTML5 使用 JavaScript 来存储和访问数据。

每个浏览器对 session storage 和 local storage 支持的数据储存大小都不一样,具体可以到[测试页面]

浏览器兼容

储存方式chromefirefoxIEOperaSafari
localStorage43.5810.504
sessionStorage52810.504

session storage

存储在 sessionStorage 里面的数据在页面会话结束时会被清除。页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。在新标签或窗口打开一个页面会初始化一个新的会话,这点和 session cookies 的运行方式不同。

语法

// 设置session Storage
sessionStorage.setItem('key', 'value');
sessionStorage.keyName = 'valueName';   // 也可以使用这种方式

// 读取数据
console.log(sessionStorage.getItem('key'));

// 删除数据
sessionStorage.removeItem('value');

// 清空session storage中所有的数据
sessionStorage.clear();

local storage

localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

语法

// 设置local Storage
localStorage.setItem('key', 'value');
localStorage.keyName = 'valueName'; // 也可以使用这种方式

// 读取数据
console.log(localStorage.getItem('key'));

// 删除数据
localStorage.removeItem('key');

// 清空local storage中所有的数据
localStorage.clear();

示例:

<script>
    window.onload=function(){
        var color=document.getElementsByClassName('color');
        var face=document.getElementById('face');
        var btn=document.getElementById('btn');
        getlocal('color');
        for(var i=0;i<color.length;i++){
            color[i].onclick=function(){
                var bgcolor=this.style.backgroundColor;
//                face.style.backgroundColor=bgcolor;
                setlocal('color',bgcolor);
//                存储颜色
                getlocal('color');
//                取出颜色并赋给div
            }
        }
//        设置本地存储
        function setlocal(k,v){
            window.localStorage.setItem(k,v);
        }
//        取出本地存储
        function getlocal(k){
            var divcolor=window.localStorage.getItem(k);
            face.style.backgroundColor=divcolor;
//            取出存储在localStorage中的颜色,并赋给div;
        }
    }
</script>

区别和联系

cookie localStorage 和 sessionStorage 三者之前的关系:

cookie:

1->可以设置过期时间;

2->储存量小:4kb;

3->原生的难用;

localStorage:

1->除非用户清除,否则永不过期;

2->储存量:5MB;

3->使用简单;

sessionStorage:

1->浏览器窗口关闭即过期;

2->存储量:5MB;

3->使用简单;

方法:

1->设置存储:window.localStorage.setItem(k,v)||window.sessionStorage.setItem(k,v)

方法:

2->取出存储:window.localStorage.getItem(k)||window.sessionStorage.getItem(k)

方法:

3->清除缓存:window.localStorage.clear()||window.sessionStorage.clear()


声明:本文由w3h5原创,转载请注明出处:《sessionStorage和localStorage的语法使用,区别和联系》 https://www.w3h5.com/post/411.html

赞 (0)
分享到: +More |

评论 沙发

换个身份