浏览器本地存储

在浏览器操作中,需要利用Javascript在用户浏览器中本地存储一些数据,以达到一些不能用服务器来识别的功能,如识别用户的第二次访问等。
本地存储的三种方式:cookie localStorage sessionStorage.
区别:cookie数据始终在同源的[http请求]中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下,子级可以访问父级,而父级不可以访问子级,一般一个网站共享一套cookie。存储大小限制也不同,cookie数据不能超过[4k],而且部分浏览器有条数限制,如IE6,只支持每个域名20个cookies,同时因为每次[http请求]都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。
cookie设置:

    function setCookie(key,value,iDay){
              var key = encodeURIComponent(key);
              var value = encodeURIComponent(value);
        var oDate = new Date();
        if(iDay){
            document.cookie =key + '=' + value +';PATH=/; EXPIRES=' + oDate.setDate(oDate.getDate() + iDay).toGMTString();
        }else{
            document.cookie = key + '=' + value + '; PATH=/;';
        }
    }

cookie读取:

    function getCookie(key){
               var key = encodeURIComponent(key);
        var arr = document.cookie.split('; '),
            i,
            len = arr.length;
        for(i=0; i<len; i++){
            var arr2 = arr[i].split('=');
            if(arr2[0] == key){
                return decodeURIComponent(arr2[1]);
            }
        }
    }

cookie删除:

    function removeCookie(key){
              var key = encodeURIComponent(key);
        //利用cookie的过期机制,其中value值任意填写;
        setCookie(key,'rem',-1);
    }

localStorage和sessionStorage书写方式一样,都有两种书写方式:
存值:

  localStorage.a = '存值';
或:
localStorage.setItem('a','存值');

取值:

alert(localStorage.a);
或:alert(localStorage.getItem('a'));

删除:

delete localStorage.a;
或:localStorage.removeItem('a');

删除全部:

localStorage.clear();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容