WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存储,除了Flash之外,其他的几个都有一些兼容性的问题。

sessionStorage与localStorage

Web Storage实际上由两部分组成:sessionStorage与localStorage。

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

userData

语法:

XML  <Prefix: CustomTag ID=sID STYLE="behavior:url('#default#userData')" />

HTML  <ELEMENT STYLE="behavior:url('#default#userData')" ID=sID>

Scripting  object .style.behavior = "url('#default#userData')"

object .addBehavior ("#default#userData")

属性:

expires 设置或者获取 userData behavior 保存数据的失效日期。

XMLDocument 获取 XML 的引用。

方法:

getAttribute() 获取指定的属性值。

load(object) 从 userData 存储区载入存储的对象数据。

removeAttribute() 移除对象的指定属性。

save(object) 将对象数据存储到一个 userData 存储区。

setAttribute() 设置指定的属性值。

localStorage

方法:

localStorage.getItem(key):获取指定key本地存储的值

localStorage.setItem(key,value):将value存储到key字段

localStorage.removeItem(key):删除指定key本地存储的值

localStorage使用总结

一、什么是localStorage、sessionStorage

在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

二、localStorage的优势与局限

localStorage的优势

1、localStorage拓展了cookie的4K限制

2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的

localStorage的局限

1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性

2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换

3、localStorage在浏览器的隐私模式下面是不可读取的

4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡

5、localStorage不能被爬虫抓取到

localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空

这里我们以localStorage来分析

三、localStorage的使用

localStorage的浏览器支持情况:

这里要特别声明一下,如果是使用IE浏览器的话,那么就要UserData来作为存储,这里主要讲解的是localStorage的内容,所以userData不做过多的解释,而且以博主个人的看法,也是没有必要去学习UserData的使用来的,因为目前的IE6/IE7属于淘汰的位置上,而且在如今的很多页面开发都会涉及到HTML5\CSS3等新兴的技术,所以在使用上面一般我们不会去对其进行兼容

首先在使用localStorage的时候,我们需要判断浏览器是否支持localStorage这个属性

if(!window.localStorage){alert("浏览器支持localstorage");return false;}else{//主逻辑业务}

localStorage的写入,localStorage的写入有三种方法,这里就一一介绍一下

if(!window.localStorage){alert("浏览器支持localstorage");return false;}else{var storage=window.localStorage;//写入a字段storage["a"]=1;//写入b字段storage.a=1;//写入c字段storage.setItem("c",3);console.log(typeof storage["a"]);console.log(typeof storage["b"]);console.log(typeof storage["c"]);}

运行后的结果如下:

这里要特别说明一下localStorage的使用也是遵循同源策略的,所以不同的网站直接是不能共用相同的localStorage

最后在控制台上面打印出来的结果是:

不知道各位读者有没有注意到,刚刚存储进去的是int类型,但是打印出来却是string类型,这个与localStorage本身的特点有关,localStorage只支持string类型的存储。

localStorage的读取

if(!window.localStorage){alert("浏览器支持localstorage");}else{var storage=window.localStorage;//写入a字段storage["a"]=1;//写入b字段storage.a=1;//写入c字段storage.setItem("c",3);console.log(typeof storage["a"]);console.log(typeof storage["b"]);console.log(typeof storage["c"]);//第一种方法读取var a=storage.a;console.log(a);//第二种方法读取var b=storage["b"];console.log(b);//第三种方法读取var c=storage.getItem("c");console.log(c);}

这里面是三种对localStorage的读取,其中官方推荐的是getItem\setItem这两种方法对其进行存取,不要问我这个为什么,因为这个我也不知道

我之前说过localStorage就是相当于一个前端的数据库的东西,数据库主要是增删查改这四个步骤,这里的读取和写入就相当于增、查的这两个步骤

下面我们就来说一说localStorage的删、改这两个步骤

改这个步骤比较好理解,思路跟重新更改全局变量的值一样,这里我们就以一个为例来简单的说明一下

if(!window.localStorage){alert("浏览器支持localstorage");}else{var storage=window.localStorage;//写入a字段storage["a"]=1;//写入b字段storage.b=1;//写入c字段storage.setItem("c",3);console.log(storage.a);// console.log(typeof storage["a"]);// console.log(typeof storage["b"]);// console.log(typeof storage["c"]);/*分割线*/storage.a=4;console.log(storage.a);}

这个在控制台上面我们就可以看到已经a键已经被更改为4了

localStorage的删除

1、将localStorage的所有内容清除

var storage=window.localStorage;storage.a=1;storage.setItem("c",3);console.log(storage);storage.clear();console.log(storage);

2、 将localStorage中的某个键值对删除

var storage=window.localStorage;storage.a=1;storage.setItem("c",3);console.log(storage);storage.removeItem("a");console.log(storage.a);

控制台查看结果

localStorage的键获取

var storage=window.localStorage;storage.a=1;storage.setItem("c",3);for(var i=0;i<storage.length;i++){var key=storage.key(i);console.log(key);}

使用key()方法,向其中出入索引即可获取对应的键

四、localStorage其他注意事项

一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式

这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串

示例:

if(!window.localStorage){alert("浏览器支持localstorage");}else{var storage=window.localStorage;var data={name:'xiecanyong',sex:'man',hobby:'program'};var d=JSON.stringify(data);storage.setItem("data",d);console.log(storage.data);}

读取之后要将JSON字符串转换成为JSON对象,使用JSON.parse()方法

var storage=window.localStorage;var data={name:'xiecanyong',sex:'man',hobby:'program'};var d=JSON.stringify(data);storage.setItem("data",d);//将JSON字符串转换成为JSON对象输出var json=storage.getItem("data");var jsonObj=JSON.parse(json);console.log(typeof jsonObj);

sessionStorage与localStorage存储 localStorage.getItem(相关推荐

  1. H5存储------localStorage和sessionStorage

    web现在随着计算机的高速发展,客户端干的事情越来越多了,随着事情的增多,很多东西存储就不止在服务器了,本地存储越来越强大了(大神原谅我废话了????) 早期时期 cookie存储 (之前我用着还是很 ...

  2. HTML5本地存储localStorage,sessionStorage

    HTML5新特性,用于本地存储, localStorage:不删除会一直存在斯基 sessionStorage:浏览器关掉,就跪了 /*** H5:数据存储方式,可以携带用户信息id* * 注意:* ...

  3. 本地浏览器缓存sessionStorage(临时存储) localStorage(长期存储)的使用

    对浏览器来说,使用 Web Storage 存储键值对比存储 Cookie 方式更直观,而且容量更大,它包含两种:localStorage 和 sessionStorage sessionStorag ...

  4. sessionStorage、localStorage存储api

    sessionStorage.localStorage存储api import storage from 'good-storage'// localStoragestorage.set(key,va ...

  5. Cocos本地存储LocalStorage

    HTML5 LocalStorage 本地存储 //存档var stopResumeMenu4 = cc.MenuItemFont.create("存档", this.onSave ...

  6. HTML5本地存储 localStorage

    HTML5的本地存储是大势所趋,如果仅存储在内存中,则是sessionStorage,他们的语法都是一样,仅仅是一个存储在本地文件系统中,另一个存储在内存中(随着浏览器的关闭而消失),其语句如下: l ...

  7. localstorage存mysql_存储localstorage

    localStorage和sessionStorage区别 localStorage和sessionStorage一样都是用来存储客户端临时信息的对象. 他们均只能存储字符串类型的对象(虽然规范中可以 ...

  8. 浏览器本地存储-localStorage的介绍和使用

    一.localStorage是什么? 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作本地存储来的,解决了cookie占用带宽和存储空间不足的问题(cookie中每条co ...

  9. HTML5本地存储localstorage

    localStorage的用途 localStorage基本上就是三个特点: 数据永久被保存在本地,即使浏览器被关闭,数据也不会消失 存储空间大,一般为5~10M 存储的内容不会和服务器发生任何交互( ...

最新文章

  1. Open***2.4.3 基于用户名密码验证方式(实战)
  2. 网站服务器处理器计划怎么设置,服务器处理器计划
  3. app.vue里使用data_Yeoman自定义Generator使用案例及Plop的使用
  4. C memset 踩坑
  5. python gevent async_python的异步初体验(gevent、async、await)
  6. 【Linux笔记(000) 】-- 系统启动过程
  7. SAP License:SD条件类型对应科目配置
  8. c语言中通过键盘给一维数组赋值怎么_编程C语言进阶篇——构造类型:数组
  9. 设计模式—工厂模式(思维导图)
  10. 爬虫实战:遇上gb2312编码的网页
  11. 无线路由器当成服务器,把无线路由器设置成服务器
  12. 论文查找: arXiv,论文阅读:知云文献翻译, 完美组合 !
  13. 《美团机器学习实践》学习笔记:机器学习中的模型评价指标(二)——回归模型评估
  14. 埃拉托色尼筛选法(Eratosthenes Sieve)分析
  15. 005 ps基础之图像旋转、裁剪
  16. A Survey of Recent Development in Indoor Visible Light Positioning
  17. 杨卫华谈新浪微博架构
  18. 300元搭建远程下载+视频服务器 Debian nginx+aria2+各种视频服务(smb+nfs+dlna)
  19. 西门子rwd68温控器说明书_西门子RWD68说明书.pdf
  20. 洛蒙德湖风景mac动态壁纸

热门文章

  1. 杭电OJ_(2044)一只小蜜蜂..
  2. matlab 柱状图_Matlab入门4-(伪)玫瑰
  3. html静态页面如何复用,HTML 代码复用
  4. oracle g12优点,独家测评卢森g11和g12哪个好??有什么区别?使用分享爆料
  5. 面试题:将字符串反转的8种方法,你能想到几种?
  6. 清远新材料实验室建设布局分析
  7. iphone 恒屏和自动旋转
  8. Ps 新手必看!照片编辑基本技巧「2」改善光线和颜色
  9. 五年级上册计算机工作总结,最新五年级数学上册教学工作总结(精选6篇)
  10. python进度条tqdm