谈一谈HTML5本地存储技术


Posted in HTML / CSS onMarch 02, 2016

本地缓存是HTML5出现的新技术,这个技术的出现使得移动web的开发成为了可能。我们都知道,要想打造一个高性能的移动应用,速度是关键。而在HTML5之前,只有cookie能够存储数据,大小只有4kb。这严重限制了应用文件的存储,导致web开发的移动应用程序需要较长的加载时间。有了本地存储,让web移动应用能够更接近原生。

浏览器中,本地存储通过window.localStorage调用。判断浏览器是否支持本地存储的代码如下:

XML/HTML Code复制内容到剪贴板
  1. if(window.localStorage){     
  2.  alert('This browser supports localStorage');     
  3. }else{     
  4.  alert('This browser does NOT supportlocalStorage');     
  5. }     

如果我们要将数据存储到本地,最简单的方法就是为window。localStorage添加一个属性并为其赋值。例如我们要存储一个数据name,它的值为Tom,就可以通过如下方式实现:

XML/HTML Code复制内容到剪贴板
  1. window.localStorage.name = “Tom”     

这里要注意字符串变量需要引号。当我们想取出本地存储中的数据市,可以利用getItem方法。整个代码流程如下:

JavaScript Code复制内容到剪贴板
  1. var storage = window.localStorage;     
  2. storage.name = “Tom”;     
  3. //取出name数据     
  4. var name1 = storage.getItem(“name”);     
  5. alert(name1);     

这段代码在Chrome浏览器控制台中的显示结果就是一个显示Tom的提示框。可见我们已经通过这种方式正确的进行了数据的存储与读取。

如果我们想删除这些存储的数据,可以使用removeItem方法。在以上代码中加入如下代码:

JavaScript Code复制内容到剪贴板
  1. storage.removeItem(“name”);     

这时当我们再次alert的时候将显示null,因为这个数据已经被清空了。

了解了一些基本的本地存储用法和思想后,我们来系统的介绍一下本地存储

本地存储分为三大类:localStorage/sessionStorage/本地数据库

localStorage和sessionStorage二者的用法、所包含的函数、调用方法等都是相同的,二者仅仅是含义不同。其中,localStorage所存储的数据是长期有效的,而sessionStorage所存储的信息当每个会话(session)关闭时就会销毁(通俗的说就是页面关闭后数据自动销毁)。

由于二者的特性不同,因此应用的场景也有很大区别。通常,当我们需要存储一些用户配置项等一些需要长时间存储的数据信息时,需要使用localStorgae进行保存,利用了其时效长的特点。相应的,当我们需要实现类似购物车等基于session的功能时,就需要使用sessionStorage。

由于localStorage和sessionStorage的用法相同,因此我们以localStorage为例,介绍二者的方法。

1、设置数据setItem
用法为localStorage.setItem(“key”, “value”),表示将value值传递给key。(sessionStorage.setItem使用方法同理,下面不再一一介绍)

2、获取数据getItem
用法为localStorage.getItem(“key”),只要输入相应的key值,就可以从中取出对应的value值。

3、删除特定的数据removeItem
用法为localStorage.removeItem(key),删除key对应的数据。

4、清空所有数据clear
用法为localStorage.clear(),表示清空所有存储系统中的数据。

以上就是一些最基本的sessionStorage/localStorage用法,希望对大家的学习有所帮助。

HTML / CSS 相关文章推荐
css3让div随鼠标移动而抖动起来
Feb 10 HTML / CSS
纯CSS绘制漂亮的圆形图案效果
May 07 HTML / CSS
css3实现可滑动跳转的分页插件示例
May 08 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
网页切图的CSS和布局经验与要点
Apr 09 HTML / CSS
CSS3中使用RGBA设置透明度的示例
Aug 04 HTML / CSS
CSS3中媒体查询结合rem布局适配手机屏幕
Jun 10 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
Oct 14 HTML / CSS
详解Html5项目适配系统深色模式方案总结
Apr 14 HTML / CSS
详解盒子端CSS动画性能提升
May 24 HTML / CSS
逼真的HTML5树叶飘落动画
Mar 01 #HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 #HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
Mar 01 #HTML / CSS
解析HTML5中的新功能本地存储localStorage
Mar 01 #HTML / CSS
基于HTML5的齿轮动画特效
Feb 29 #HTML / CSS
HTML5中meta属性的使用方法
Feb 29 #HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
Feb 29 #HTML / CSS
You might like
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
日期 时间js控件
2009/05/07 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
package.json文件配置详解
2017/06/15 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
python实现的防DDoS脚本
2011/02/08 Python
Python Trie树实现字典排序
2014/03/28 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
一篇.NET面试题
2014/09/29 面试题
社区党务公开实施方案
2014/03/18 职场文书
药店促销活动总结
2014/07/10 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
nginx共享内存的机制详解
2022/03/21 Servers
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers