谈一谈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教程(6):创建网站多列
Apr 02 HTML / CSS
css3设置box-pack和box-align让div里面的元素垂直居中
Sep 01 HTML / CSS
css3实现超炫风车特效
Nov 12 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
May 24 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
Oct 28 HTML / CSS
CSS3制作圆形滚动进度条动画的示例
Nov 05 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
Oct 16 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
Aug 27 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
Apr 25 HTML / CSS
amazeui页面校验功能的实现代码
Aug 24 HTML / CSS
关于HTML5+ API plusready的兼容问题
Nov 20 HTML / CSS
Html5通过数据流方式播放视频的实现
Apr 27 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 获取远程文件内容的函数代码
2010/03/24 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
Python的Django框架中的数据库配置指南
2015/07/17 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
python 读取文件并替换字段的实例
2018/07/12 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
好的自荐信包括什么内容
2013/11/07 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
美术学专业求职信
2014/07/23 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
二审答辩状范文
2015/05/22 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
公司宣传语大全
2015/07/13 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript