​HTML5本地存储规范,定义了两个重要的API :Web Storage  和  本地数据库Web SQL Database。

本地存储Web Storage 实际上是HTML4的cookie存储机制的一个改进版本,然而两种机制的功能又不相同。web storage 的作用是在网站中把有用的信息存储到本地的计算机

或移动设备上,然后根据实际需要从本地读取信息。

web storage 提供了两种存储类型API接口:sessionStorage 和 localStorage 。
sessionStorage:会话期间内有效;
localStorage  :永久的,除非用户或程序对其执行删除操作;

如何检测浏览器是否支持web storage 代码如下:

if(window.localStorage){
//浏览器支持localStorage
}
if(window.sessionStorage){
//浏览器支持sessionStorage
}

我们来看看HTML5规范中定义的Storage的如下API:

interface Storage{
readonly attribute unsigned long length;
DOMString? key(in unsigned long index);
getter DOMString getItem(in DOMString key);
setter creator void setItem(in DOMString key,in DOMString value);
deleter void removeItem(in DOMString key);
void clear();
}

​从规范定义的接口来看,接口数量并不多,只有length是属性,其余都是方法。
其中getItem 和 setItem 互为一对setter 和 getter方法,如果有面向对象知识,看到这种方法名的定义,必定不会感到陌生。
removeItem方法的主要作用是删除一个key/value(键/值)对。
clear方法的作用则是删除所有的键值对。

探讨如何使用storage的各个API,代码如下:

localStorage.setItem("name","存储的内容!!!");//存储内容
localStorage.getItem("name"); //读取内容
localStorage.key(1); //取出键值
localStorage.removeItem("name"); //删除指定key为“name”的item
localStorage.clear();// 删除localStorage所有数据

练习1代码如下

<!-- 提示浏览器是否支持localStorage -->
<div id="msg" style="color: #f00;"></div>
<h4>通过localStorage的一些方法来添加 修改 删除数据 <span style="color: #0f0">修改后需要刷新页面</span></h4>
<ul>
<li>姓名:<input type="text" id="name"><input type="button" value="提交" id="subName"><input type="button" value="删除" id="clearName"></li>
<li>年龄:<input type="text" id="age"><input type="button" value="提交" id="subAge"><input type="button" value="删除" id="clearAge"></li>
<li>出生日期:<input type="text" id="date"><input type="button" value="提交" id="subDate"><input type="button" value="删除" id="clearDate"></li>
</ul>
<input type="button" id="clearAll" value="清除所有数据">
<script type="text/javascript">
function _(id){
return document.getElementById(id);
} if(window.localStorage){
//浏览器支持localStorage
//console.log("浏览器支持localStorage");
_("msg").innerHTML = "浏览器支持localStorage";
// 初始是本地数据
_("name").value = localStorage.getItem("name");
_("age").value = localStorage.getItem("age");
_("date").value = localStorage.getItem("date"); //存储数据或修改数据
_("subName").onclick = function(){
var str = _("name").value;
localStorage.setItem("name",str);//存储姓名
};
_("subAge").onclick = function(){
var str = _("age").value;
localStorage.setItem("age",str);//存储年龄
};
_("subDate").onclick = function(){
var str = _("date").value;
localStorage.setItem("date",str);//存储出生日期
};
// 通过key的值来删除item
_("clearName").onclick = function(){
localStorage.removeItem("name");
};
_("clearAge").onclick = function(){
localStorage.removeItem("age");
};
_("clearDate").onclick = function(){
localStorage.removeItem("date");
};
// 删除localStorage所有数据
_("clearAll").onclick = function(){
localStorage.clear();
};
}else{
_("msg").innerHTML = "浏览器不支持localStorage";
}
</script>

HTML5 本地存储Web Storage简单了解的更多相关文章

  1. html5本地存储web storage的简单使用

    html5的一个非常cool的功能,就是web storage,类似于之前的cookie,不过与之不同的是,web storage 拥有本地5兆的容量可以存储,而cookie却只有4K,这是完全不能比 ...

  2. HTML5本地存储 Web Storage

    Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API  sessionStorage 和 localStorage,二者的差异主要是数 ...

  3. HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  4. [转]HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  5. HTML5本地存储(Local Storage) 的前世今生

    长久以来本地存储能力一直是桌面应用区别于Web应用的一个主要优势.对于桌面应用(或者原生应用),操作系统一般都提供了一个抽象层用来帮助应用程序保存其本地数据 例如(用户配置信息或者运行时状态等). 常 ...

  6. HTML5本地存储——Web SQL Database与indexedDB

    虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数 ...

  7. 本地存储 web storage

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. html5本地存储 local storage

    HTML5 web storage, a better local storage than cookies. With HTML5, web pages can store data locally ...

  9. HTML5本地存储——IndexedDB(一:基本使用)

    在HTML5本地存储——Web SQL Database提到过Web SQL Database实际上已经被废弃,而HTML5的支持的本地存储实际上变成了 Web Storage(Local Stora ...

随机推荐

  1. springmvc时间(date)无法转入后台(@DateTimeFormat+@JsonFormat(GMT+8))

    spring时间(date)无法转入后台 Type Status Report Description The server cannot or will not process the reques ...

  2. EJB结合struts2创建项目、发布jboss服务器和访问、父类(BaseDaoImpl)的封装

    一.环境搭建: 1.准备jboss服务器,将对应数据库的xml配置好放到jboss的发布目录下. <?xml version="1.0" encoding="UTF ...

  3. Mapreduce-Partition分析(转)

    http://blog.oddfoo.net/2011/04/17/mapreduce-partition%E5%88%86%E6%9E%90-2/ Partition所处的位置 Partition位 ...

  4. SQL批量添加,更新,删除

    SQL语句: 存储过程: 代码: 这里说的是关于SQL的批量操作数据. 需要准备: 三层框架:利用 动软代码生成器(可以快速生成增删改查) 生成三层 Model,BLL,Dal ①DbHelpeSQL ...

  5. 微信小程序分包加载

    分包加载 某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载. 在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中每个分包小程序必定含有一个主 ...

  6. vuex+vue-router拦截

    干就完了 项目中经常遇到这样一个场景,用户信息或者进行增删改的一些模块,需要根据用户是否登录,进行路由拦截,直接上代码 在store文件夹下的store.js中存放一个默认登录状态 /* * stor ...

  7. 2018-03-21 11:34:44 java脚本批量转换java utf-8 bom源码文件为utf-8编码文件

    package com.springbootdubbo; import java.io.*;import java.util.ArrayList;import java.util.List; /** ...

  8. noip2018 洛谷 P1969积木大赛

    1 //一定不要忘记这句话 “连续区间 ”!! #include<bits/stdc++.h> using namespace std; int main(){ int n, h;//n是 ...

  9. <<学会提问>>第一章学习笔记

    中国应不应该现在取消死刑? 中医是不是伪科学? 读书无用论? 集体主义和团队精神? 欧洲难民危机,你是支持接收难民,还是反对? 欧洲白左是不是幼稚圣母,抑或是右派种族歧视,顽固保守? 如何看待&quo ...

  10. 避免 ‘sudo echo xxxx >’ 时候 出现 “permission denied”

    ➜  ~ echo "/opt/nfs 10.10.10.*(rw,all_squash,sync)">>/etc/exports zsh: permission de ...