谈一谈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实现炫酷的飞机起飞动画
Sep 17 HTML / CSS
浅析与CSS3的loading动画加载相关的transition优化
May 18 HTML / CSS
用CSS3实现背景渐变的方法
Jul 14 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
Jul 03 HTML / CSS
CSS3 animation ? steps 函数详解
Aug 30 HTML / CSS
socket.io 和canvas 实现的共享画板功能
May 22 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
May 03 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
Jan 09 HTML / CSS
HTML5和以前HTML4的区别整理
Oct 20 HTML / CSS
AmazeUI 导航条的实现示例
Aug 14 HTML / CSS
POST提交数据常见的四种方式
Jan 18 HTML / CSS
微信小程序纯CSS实现无限弹幕滚动效果
Sep 23 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP7匿名类用法分析
2016/09/26 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
python单元测试unittest实例详解
2015/05/11 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
员工拾金不昧表扬信
2014/01/09 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
招标授权委托书样本
2014/09/23 职场文书
统计员岗位职责
2015/02/11 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书