localStorage的学习与总结

一.locaLStorage :window对象上定义的一个属性,这个属性是Storage对象。 一个持久化关联数组,数组使用字符串来索引,存储的值也是字符串形式的。HTML5 使用 JavaScript 来存储和访问数据.

localStroage存储的数据是永久性的,除非WEB应用可以删除存储的数据,或者用户通过设置浏览器设置来删除,否则数据一致保留在用户的电脑上。localStorage的作用域是限定在文档源级别的(文档源是通过协议,主机名以及端口三者来确定的,只要其中一个不同,就说明是不同的文档源),localStroage的作用域也是受浏览器供应商限制,在不同的浏览器上,获取的localStroage的数据是不同的。

二.存储API

localStroage通常是当做普通的javascript对象使用的:通过设置属性来存储字符串值,查询该属性,来读取该取值。

localStorage本身带有方法有

  (1)添加键值对:localStorage.setItem(key,value);如果key存在时,更新value

      (2)获取键值:localStorage.getItem(key);如果key不存在返回null

  (3)删除键值对:localStorage.removeItem(key)。一旦删除,key对应的数据将会全部删除

      (4)清除所有键值对:localStorage.clear()。某些时候使用removeItem逐个删除太麻烦,可以使用clear,执行的后果是会清除所有localStorage对象保存的数据

(5)获取localStorage的属性名称(键名称):localStorage.key(index)。

(6)存储JSON格式数据

JSON.stringify(data) 将一个对象转换成JSON格式的数据串,返回转换后的串

JSON.parse(data) 将数据解析成对象,返回解析后的对象

例如

  var infos = {author:"xiyin","description":"前端学习","rating":001};
  localStorage.setItem("infos",JSON.stringify(infos));
  infos = JSON.parse(localStorage.getItem("infos"));
  document.write(infos.author+‘<br>‘);
  document.write(infos.description+‘<br>‘);
  document.write(infos.rating);

实现效果图:

本地存储的效果图:

还有一个和普通对象不一样的属性length:

获取localStorage中保存的键值对的数量:localStorage.length

三.使用例子

 $(function(){  
   var ullistobj=document.getElementsByClassName(‘list-group‘);
    //因为getElementsByClassName返回是一个对象数组,所以使用ullistobj[0]  
    ullistobj[0].addEventListener("click",fun,false);
    function fun(event){
        event=event||window.event;
         var target= event.target||event.srcElement;
         switch(target.id){
            case "item1":
                getValue();        
            break;
            case "item2":
               getValue();       
            break;
            case "item3":
               getValue();        
            break;
            case "item4":
                getValue();    
            break;
            case "item5":
               getValue();    
            break;

    }
};
//获得btn对象,点击后,进行显示本地存储的浏览历史
   var btnobj=document.getElementById(‘btn‘);
    btnobj.addEventListener("click",fun1,false);
    function fun1(){
      init_getlocalstorage();
    }
   
  
  })
  //页面加载完,从本地localStorage取数据,并显示
 function init_getlocalstorage(){
           for(var i=0;i<localStorage.length;i++){             
                 var name=localStorage.key(i); // 获取localStorage的属性名称        
                   if (name == "ullist"){
                      var all=localStorage.getItem("ullist");
                      var list=all.split(";");  //将ullist中存储的字符串,以“;”断开取出,形成数组字符串。
                      //让本地存储的数据,时刻是当时的前6个,对于后面多余6个,就进行删除                 
                       if(list.length>6){                        
                          for(var j=6;j<list.length-1;j++){
                                  delete list[j];
                          }
                        }  
                        //根据分割出来的数组字符串,进行循环输出在页面上。                 
                        for(var j=0;j<list.length-1;j++){                                 
                                $(".list-group1").append(‘<li class="list-group-item">‘+‘<a class="a1">‘+list[j]+‘</a>‘+‘</li> ‘);
                                 
                           }  
                    }  
                     }
               };
        //存储点击的值在本地
      function getValue(){
      var target= event.target||event.srcElement;
      if(!localStorage.getItem("ullist")){
                localStorage.setItem("ullist",".");
              } 
          //取出名为ullist中的值
       var value=localStorage.getItem("ullist");
        //获得当前点击的文本值内容
      var liname=target.innerHTML;
       //将当前获得文本值,传进去重函数中,进行删除重复的值,
        var quchonglist=quchong(value,liname);
        //通过返回的本地字符串与当前的点击文本值进行拼接形成新的字符串
        var value1=target.innerHTML+‘;‘+quchonglist;
        //将这个新的字符串存储在ullist中
         localStorage.setItem("ullist",value1);   

    }
     //去掉因为重复点击也存储在本地的数据,并保存当前最新的点击记录
      function quchong(value,liname){
             var list=value.split(";");            
              for(var i=0;i<list.length;i++){    
                if(list[i]==liname){
                     //比对当前存入的值与本地的值有没有相同的,如果相同则删除这个元素
                        list.splice(i,1);
                   }
              }
          var finshstring=list.join(";");//将最终的数组字符串又重新连接成字符串
               return  finshstring;
        };

页面效果图:

点击查看浏览历史的效果图:

本地存储的效果图:

四.总结:

这里是简单对自己项目中用到的localStorage存储本地数据,做了简单总结。

本地存储(localStorage && sessionStorage)是html5几种存储形式(本地存储(localStorage && sessionStorage,离线缓存(application cache),indexedDB 和 webSQLlocalStorage)之一用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。是为了在本地“存储”数据而生,为了更大容量存储设计的。比起之前文章<js中cookie的学习与使用>中提到的cookie的使用,方便很多。

时间: 2024-11-07 19:46:48

localStorage的学习与总结的相关文章

学习web存储之localstorage

简单学习了localStorage,写个随笔心得 之前只知道客户端向服务器发出请求,用户的信息会暂时存在cookie,而且cookie只适合存较少的数据,html5提供了另外两种数据存储的方式 1.localStorage--长时间存在本地并且存储信息的容量想当可观大约能存500万字节(各个浏览器不一样),cookie才4K 2.sessionStroage--关闭浏览器,相应信息就会消除 localStorage调用方法: localStorage.setItem(key,value);//设

(转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage

原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage .sessionStorage.globalStorage   Posted on 2012-03-25 11:23 祥叔 阅读(2) 评论(0)  编辑 收藏 HTML5 提供了四种在客户端存储数据的新方法,即 localStorage .sessionStorage.globalStorage

localStorage和sessionStorage学习小结

常用的API如下表所示: 名称 作用 clear 清空localStorage上存储的数据 getItem 读取数据 hasOwnProperty 检查localStorage上是否保存了变量x,需要传入x key 读取第i个数据的名字或称为键值(从0开始计数) length localStorage存储变量的个数 propertyIsEnumerable 用来检测属性是否属于某个对象的 removeItem 删除某个具体变量 setItem 存储数据 toLocaleString 将(数组)转

HTML学习笔记之三(localstorage的使用)

localstorage的使用 1.获取对象 var localstroage = window.localStorage; 2.存储值 localstroage.setItem('openid','ksjhfkjajkdfjkszdjfksad'); localstroage.setItem('uid','10001'); 3.获取值 var openid = localstroage.getItem('openid'); 4.删除某个值 localstroage.removeItem('op

HTML5学习笔记之客户端存储数据方法:localStorage(),sessionStorage()

HTML5提供了两种在客户端存储数据的新方法: localStorage():没有时间限制的数据存储 sessionStorage():针对一个session的数据存储 下面的一个例子用localStroage()方法对用户访问页面的次数进行计数 <script type="text/javascript"> if(localStorage.pagecount) { localStorage.pagecount=Number(localStorage.pagecount)+

Cookies,localStorage,sessionStorage,Web SQL Database(客户端)会话存储学习

客户端(浏览器端)存储数据有诸多益处,最主要的一点是能快速访问(网页)数据.目前常见的浏览器端数据存储方法有:Cookies,Local Storage,Session Storage,IndexedDB 取值,存值,删除(用于浏览器存储客户端的访问数据) 1.Cookies Cookies 是一种在文档内存储字符串数据最典型的方式.一般而言,cookies 会由服务端发送给客户端,客户端存储下来,然后在随后让请求中再发回给服务端.这可以用于诸如管理用户会话,追踪用户信息等事情. Cookies

客户端相关知识学习(十一)之Android H5交互Webview实现localStorage数据存储

前言 最近有一个需求是和在app中前端本地存储相关的,所以恶补了一下相关知识 webView开启支持H5 LocalStorage存储 有些时候我们发现写的本地存储没有起作用,那是因为默认WebView没有开启LocalStorage存储.开启方法如下 首先得有Webview控件: 有人问我是不是需要写布局文件,不写行不行,现在我就告诉你们,不写没问题,需要写就写不写直接创建New一个也行. 下面我就介绍一个,我new一个Webview实现localStorage. WebView mywebV

vue学习如何引入js,封装操作localStorage本地储存的方法

// 封装操作localStorage本地储存的方法 模块化的文件 //nodejs 基础 var storage={ set(key,value){ localStorage.setItem(key,JSON.stringify(value)); }, get(key){ return JSON.parse(localStorage.getItem(key)); }, remove(key){ localStorage.removeItem(key); } } export default s

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

目录 一.浏览器兼容 1.1.概要 1.2.浏览器内核 1.3.浏览器市场份额(Browser Market Share) 1.4.兼容的一般标准 1.5.CSS Reset 1.6.CSS Hack 1.6.1.条件注释法 1.6.2.样式内属性标记法 1.6.3.选择器前缀法 1.7.文档模式 (X-UA-Compatible) 1.8.javascript兼容 二.前端性能优化 2.1.概要 2.2.减少HTTP请求数量 2.2.1.图片地图 2.2.2.精灵图片(Sprite) 2.2.