存储对象:

  在主流浏览器中,添加了html5  Web Storage API 的接口,storage是一个存储对象,它包括会话存储(session storage)或本地存储(local storage),它们分别有添加、修改或删除存储数据项的功能。

如果我们想要操作一个会话存储(session storage),可以使用 Window.localStorage对象,操作本地存储(local storage),可以使用  Window.sessionStorage对象

localStorage介绍:

  特征:

  ( 1 ).除非手动清除,否则永久保存在浏览器

   ( 1 ).存储大小一般为5MB

  (3).只存在于客户端(浏览器)中,不参与和服务器的通信

  (4).api使用简单,可以直接拿来使用,也可自己封装来对Object和Array有更好的支持

  (5).相同浏览器的不同页面间可以共享相同的 localStorage

  (6).不同浏览器无法共享localStorage或sessionStorage中的信息

  api方法介绍:

  localstorage.setItem(key,value)     //该方法接受键,值两个参数,如果键存在,就更新值

  localstorage.getItem(key)              //该方法接受一个参数值key,返回对应的value值

  localstorage.key(index)            //该方法一个number值,返回对应下标的key

  localstorage.removeItem(key)       //该方法接受一个参数值key,把当前key,value从localstorage中删除

  localstorage.clear()              //该方法 清除对象中所有的key,value

  对localStorage进行封装,可以兼容ie低版本浏览器(通过cookie来做兼容):

var local_storage = {};
local_storage = {
if(!window.localStorage){//当浏览器不支持localstorage的时候,采用cookie来代替localstorage
  return{
    getItem: function (sKey) {
       if(!sKey || !this.hasOwnProperty(sKey)) { return null; }
            return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
},
key: function (nKeyId) {
return unescape(document.cookie.replace(/\s*\=(?:.(?!;))*$/, "").split(/\s*\=(?:[^;](?!;))*[^;]?;\s*/)[nKeyId]);
},
setItem: function (sKey, sValue) {
if(!sKey) { return; }
document.cookie = escape(sKey) + "=" + escape(sValue) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
this.length = document.cookie.match(/\=/g).length;
},
length: (function(){
return (document.cookie.match(/\=/g) || window.localStorage).length;
})(),
removeItem: function (sKey) {
if (!sKey || !this.hasOwnProperty(sKey)) { return; }
document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
this.length--;
},
hasOwnProperty: function (sKey) {
return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
}
};
}else{
return {
setItem:function(key,value){
window.localStorage.setItem(key,value);
},
getItem:function(key){
console.log(key);
return window.localStorage.getItem(key);
},
removeItem:function(key){
window.localStorage.removeItem(key);
},
removeAll:function(){
window.localStorage.clear();
},
length:(function(){
return window.localStorage.length;
})()
}
}
}

sessionStorage介绍:

   特征:

  (1).仅在当前会话下有效,浏览器被关闭或当前页面被关闭的情况下清除

  (2).存储大小一般为5MB

  (3).只存在于客户端(浏览器)中,不参与和服务器的通信

  (4).api使用简单,可以直接拿来使用,也可自己封装来对Object和Array有更好的支持

  (5).不同页面或标签页间无法共享sessionStorage的信息

  (6).不同浏览器无法共享localStorage或sessionStorage中的信息

  api方法介绍:

  sessionStorage.setItem(key,value)     //该方法接受键,值两个参数,如果键存在,就更新值

  sessionStorage.getItem(key)              //该方法接受一个参数值key,返回对应的value值

  sessionStorage.key(index)            //该方法一个number值,返回对应下标的key

  sessionStorage.removeItem(key)       //该方法接受一个参数值key,把当前key,value从sessionStorage中删除

  sessionStorage.clear()              //该方法 清除对象中所有的key,value

  对sessionStorage进行封装,可以兼容ie低版本浏览器(通过cookie来做兼容):

var session_storage = {};
session_storage = {
if(!window.localStorage){//当浏览器不支持localstorage的时候,采用cookie来代替localstorage
    return{

      getItem: function (sKey) {
        if(!sKey || !this.hasOwnProperty(sKey)) { return null; }
        return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
      },
      key: function (nKeyId) {
        return unescape(document.cookie.replace(/\s*\=(?:.(?!;))*$/, "").split(/\s*\=(?:[^;](?!;))*[^;]?;\s*/)[nKeyId]);
      },
      setItem: function (sKey, sValue) {
        if(!sKey) { return; }
        document.cookie = escape(sKey) + "=" + escape(sValue) + "; path=/";
        this.length = document.cookie.match(/\=/g).length;
      },
      length: (function(){
        return (document.cookie.match(/\=/g) || window.sessionStorage).length;
      })(),
      removeItem: function (sKey) {
        if (!sKey || !this.hasOwnProperty(sKey)) { return; }
        document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
        this.length--;
      },
      hasOwnProperty: function (sKey) {
        return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
      }
  };

 }else{
return {
     setItem:function(key,value){

        window.sessionStorage.setItem(key,value);
      },
      getItem:function(key){
        console.log(key);
        return window.sessionStorage.getItem(key);
      },
      removeItem:function(key){
        window.sessionStorage.removeItem(key);
      },
      removeAll:function(){
        window.sessionStorage.clear();
      },
      length:(function(){
        return window.sessionStorage.length;
      })()

    }
}
}

参考资料:

  https://developer.mozilla.org/zh-CN/docs/Web/API/Storage

localStorage 和 sessionStorage的区别的更多相关文章

  1. localStorage和sessionStorage的区别

    //在chrome测试的结果; 知识点1:localStorage和sessionStorage的区别; localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除local ...

  2. vuex知识笔记,及与localStorage和sessionStorage的区别

    菜单快捷导航 Vuex是什么东东,有什么应用场景?localStorage和sessionStorage能否替代它? Vuex知识点State.Getter.Mutaion.Action Vuex模块 ...

  3. cookie、session、localStorage、sessionStorage的区别

    cookie的机制 cookie是存储在用户本地终端上的数据.有时也用cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密. Cookie是服务器发 ...

  4. localStorage与sessionStorage 的区别

    通过一枚页面计数器来区别localStorage与sessionStorage. 通过一个计数变量pageconut,每刷新页面,增加的是localStorage的数量,而sessionStorage ...

  5. 13.localStorage和sessionStorage的区别

    HTMl5的sessionStorage和localStorage html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. sessionSt ...

  6. cookie、LocalStorage、sessionStorage三者区别以及使用方式

    cookie用来保存客户浏览器请求服务器页面的请求信息 HTML5的WebStorage提供了两种API:localStorage(本地存储)和sessionStorage(会话存储) WebStor ...

  7. cookie、localStorage、sessionStorage的区别

    localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 共同点:sessionStorage.localStorage和cooki ...

  8. Cookie、LocalStorage 与 SessionStorage的区别在哪里?

    基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通 ...

  9. localStorage、sessionStorage的区别

    1.localStorage生命周期是永久的, sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了. ...

随机推荐

  1. 并不对劲的loj3049:p5284:[十二省联考]字符串问题

    题目大意 给出字符串\(S(|S|\leq2\times10^5)\), \(na(na\leq2\times 10^5)\)个区间\([l_i,r_i]\)表示\(S_{l_i},S_{l_i+1} ...

  2. 【CQ18高一暑假前挑战赛5】标程

    [A:暴力] #include<bits/stdc++.h> using namespace std; ; int a[maxn],vis[maxn],N,M; int main() { ...

  3. SIM卡(单卡)配置

    SIM卡相关配置 1.GPIO90--->BPI8 GPIO91--->BPI9 GPIO92--->BPI10 2.ProjectConfig.mk:MTK_PROTOCOL1_R ...

  4. Identity Server 4 原理和实战(完结)_Hybrid Flow 实例, Claims, 角色授权和策略授权

    4分50 建立客户端 不需要身份认证 客户端叫做HybirdClient 配置IdentityServer服务端,先把客户端添加上 把userClaims添加到token里面 然后运行服务端就可以了 ...

  5. 如何在.net项目中使用全局程序集GAC

    在解决已有.net网站问题过程中(之前的同事写的),发现出现dll不存在的情况,build报错 在bin目录下找不到该dll,后来发现是全局程序集,存储在C:\Windows\assembly目录下 ...

  6. git 回退到服务器版本操作

    git fetch git reset orgin master --hard git pull

  7. lightoj1064 【DP求方案】

    题意: n个相同的骰子,问你掷出>=x点数的可能性: 思路: dp[i][j]代表前 i 个骰子掷出 j 点数的方案数; 然后Σdp[n][x]-dp[n][6*n]就好了 卧槽,一开始想的是拆 ...

  8. uoj#283. 直径拆除鸡(构造)

    传送门 好神的构造题 vfk巨巨的题解 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) fo ...

  9. [Xcode 实际操作]九、实用进阶-(30)为IAP(支付方式)内购项目添加测试账号,测试内购功能

    目录:[Swift]Xcode实际操作 本文将演示如何添加测试账号,以方便对内购功能进行测试. IAP,即in-App Purchase ,是一种智能移动终端应用程序付费的模式, 在苹果(Apple) ...

  10. IT兄弟连 JavaWeb教程 Servlet会话跟踪 Session常用方法

    ●  public Object getAttribute(String name) 该方法返回在该session会话中具有指定名称的对象,如果没有指定名称的对象,则返回null. ●  public ...