谈一谈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 相关文章推荐
详解CSS样式中的 !important * _ 符号
Mar 09 HTML / CSS
CSS3字体效果的设置方法小结
Jun 13 HTML / CSS
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
玩转CSS3色彩
Jan 16 HTML / CSS
css3媒体查询中device-width和width的区别详解
Mar 27 HTML / CSS
CSS3 实现弹跳的小球动画
Oct 26 HTML / CSS
IE9下html5初试小刀
Sep 21 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
Jun 25 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
Jul 25 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
Sep 08 HTML / CSS
Html5元素及基本语法详解
Aug 02 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
Apr 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
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
smtp邮件发送一例
2006/10/09 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
React中的render何时执行过程
2018/04/13 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python3+Appium安装使用教程
2019/07/05 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
python3让print输出不换行的方法
2020/08/24 Python
python 绘制正态曲线的示例
2020/09/24 Python
设置器与访问器的定义以及各自特点
2016/01/08 面试题
工程师岗位职责规定
2014/02/26 职场文书
119消防日活动总结
2014/08/29 职场文书
高一军训的心得体会
2014/09/01 职场文书
初中政治教学反思
2016/02/23 职场文书
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python
什么是Python装饰器?如何定义和使用?
2022/04/11 Python
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers