谈一谈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中transform变换模型的渲染
May 27 HTML / CSS
CSS3 圆角效果
Jul 15 HTML / CSS
CSS3实现DIV圆角效果完整代码
Oct 10 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
Sep 01 HTML / CSS
CSS3 @media的基本用法总结
Sep 10 HTML / CSS
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
May 07 HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
Jan 18 HTML / CSS
Canvas系列之滤镜效果
Feb 12 HTML / CSS
HTML5开发动态音频图的实现
Jul 02 HTML / CSS
移动端HTML5 input常见问题(小结)
Sep 28 HTML / CSS
CSS完成视差滚动效果
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 设计模式之 单例模式
2008/12/19 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
js 编写规范
2010/03/03 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
基于模板引擎Jade的应用(详解)
2017/12/12 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
经典C++面试题一
2016/11/06 面试题
自考毕业自我鉴定范文
2013/10/27 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
《恐龙》教学反思
2014/04/27 职场文书
说明书怎么写
2014/05/06 职场文书
施工安全承诺书
2014/05/22 职场文书
企业活动策划方案
2014/06/02 职场文书
机关保密工作承诺书
2015/05/04 职场文书
详解Python描述符的工作原理
2021/06/11 Python
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
python scrapy简单模拟登录的代码分析
2021/07/21 Python
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
警用民用对讲机找不同
2022/02/18 无线电
一级电子管军用接收机测评
2022/04/05 无线电
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android