谈一谈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实现带动画效果导航菜单无需js
Sep 27 HTML / CSS
CSS Grid布局教程之什么是网格布局
Dec 30 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
May 09 HTML / CSS
css3 flex实现div内容水平垂直居中的几种方法
Mar 27 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
Aug 28 HTML / CSS
html5 视频播放解决方案
Nov 06 HTML / CSS
如何避免常见的6种HTML5错误用法
Nov 06 HTML / CSS
html5唤起app的方法
Nov 30 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
Mar 31 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
Jun 11 HTML / CSS
HTML CSS 一个标签实现带动画的抖音LOGO
Apr 26 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 fseek函数读取大文件两种方法
2016/10/12 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
js二级地域选择的实现方法
2013/06/17 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
2020/05/29 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Python bytes string相互转换过程解析
2020/03/05 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
护理专业毕业生推荐信
2013/10/31 职场文书
自我评价优秀范文分享
2013/11/30 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
自我查摆剖析材料
2014/10/11 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
PHP新手指南
2021/04/01 PHP
深度学习详解之初试机器学习
2021/04/14 Python
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS