Web Storage--HTML5本地存储

什么是Web Storage

Web Storage是HTML5里面引入的一个类似于cookie的本地存储功能,可以用于客户端的本地存储,其相对于cookie来说有以下几点优势:

  1. 存储空间大:cookie只有4KB的存储空间,而Web Storage在官方建议中为每个网站5M。
  2. 可选择性强:Web Storage分为两种:sessionStoragelocalStorage

Web Storage的使用方法

在使用上,session Storagelocal Storage大同小异,只是session Storage是将数据临时存储在session中,浏览器关闭,数据随之消失。而local Storage则是将数据存储在本地,理论上来说数据永远不会消失,除非人为删除。

API:

  • 保存数据 localStorage.setItem( key, value ); sessionStorage.setItem( key, value );
  • 读取数据 localStorage.getItem( key ); sessionStorage.getItem( key );
  • 删除单个数据localStorage.removeItem( key ); sessionStorage.removeItem( key );
  • 删除全部数据localStorage.clear( ); sessionStorage.clear( );
  • 获取索引的keylocalStorage.key( index ); sessionStorage.key( index );

注意:Web Storage的API只能操作字符串



在使用Web Storage之前,我们需要注意以下几点:

  1. 仅支持支持IE8及以上版本
  2. 由于只能对字符串类型数据进行操作,所以对一些JSON对象需要进行转换
  3. 因为是明文存储,所以毫无隐私性可言,绝对不能用于存储重要信息
  4. 会是浏览器加载速度在一定程度上变慢
  5. 无法被爬虫程序爬取
  6. 使用Web Storage之前,请加上以下代码,对浏览器对Web Storage的支持性进行判断
    if(window.localStorage){//或者window.sessionStorage
        alert("浏览器支持localStorage")
        //主逻辑业务
    }else{
        alert("浏览不支持localStorage")
        //替代方法
    }
      

我们来写一个学生管理小程序用于演示Web Storage的基本用法

简单的html页面先准备好

    <div style="border: 2px dashed #ccc;width:320px;float: left;">
        <label for="name">学生姓名:</label>
        <input type="text" id="name" name="name"/>
        <br/>
        <label for="sex">性别:</label>
        <input type="text" id="sex" name="sex"/>
        <br/>
        <label for="num">学号:</label>
        <input type="text" id="num" name="num"/>
        <br/>
        <label for="add">家庭住址:</label>
        <input type="text" id="add" name="add"/>
        <br/>
        <label for="tel">电话号码:</label>
        <input type="text" id="tel" name="tel"/>
        <br/>
        <input type="button" onclick="save()" value="提交信息"/>
        <hr/>
        <input type="button" onclick="loadAll()" value="查看所有"/>
        <hr/>
        <label for="search_name">输入姓名:</label>
        <input type="text" id="search_name" name="search_name"/>
        <br/>
        <input type="button" onclick="search()" value="查询"/>
        <hr/>
        <label for="del_name">输入姓名:</label>
        <input type="text" id="del_name" name="del_name"/>
        <br/>
        <input type="button" onclick="del()" value="删除"/>
        <hr/>
    </div>
    <br/>
    <div id="list"></div>
    <div id="tato"></div>

在这个程序里面我们将实现增删查的基本功能,修改数据的功能相信大家看完后自己就能写出来。

接下来开始写方法:

存储

//利用localStorage存储数据
function save() {
    var contact = new Object();
    var Name = document.getElementById("name").value;
    var Sex = document.getElementById("sex").value;
    var Num = document.getElementById("num").value;
    var Add = document.getElementById("add").value;
    var Tel = document.getElementById("tel").value;
    if(JTrim(Name) != "" && JTrim(Sex) != "" && JTrim(Num) != "" && JTrim(Add) != "" && JTrim(Tel) != "") {
        contact.name = Name;
        contact.sex = Sex;
        contact.num = Num;
        contact.add = Add;
        contact.tel = Tel;
        var str = JSON.stringify(contact);//对JSON对象进行处理,用于从一个对象解析出字符串
        if(window.localStorage) {
            localStorage.setItem(contact.name,str);
        } else {
            alert("您暂时还无法使用本功能");
            return;
        }
    } else {
        alert("请输入内容");
    }
}

其中用到了Trim()这个方法,用于判断输入是否为空

function JTrim(s) {
    return s.replace(/(^\s*)|(\s*$)/g, "");
}

展示所有信息

function loadAll() {
    var resource = document.getElementById("list");
    if(window.localStorage) {
        var result = "<table border = ‘1‘>";
        result += "<tr><td>姓名</td><td>性别</td><td>学号</td><td>家庭住址</td><td>电话号码</td></tr>";
        for(var i = 0;i < localStorage.length; i++) {
            var Name = localStorage.key(i);//用于得到索引的key,在这个程序里,key为name
            var str = localStorage.getItem(Name);
            var contact = JSON.parse(str);//对JSON对象进行处理,用于从一个字符串中解析出JSON对象
            result += "<tr><td>"+contact.name+"</td><td>"+contact.sex+"</td><td>"+contact.num+"</td><td>"+contact.add+"</td><td>"+contact.tel+"</td></tr>";
        }
        result += "</table>";
        resource.innerHTML = result;
    } else {
        alert("您暂时还无法使用本功能");
        return;
    }
}

查询

function search() {
    var resource = document.getElementById("tato");
    var search_name = document.getElementById("search_name").value;
    if(window.localStorage) {
        var str = localStorage.getItem(search_name);
        if(str != null) {
            var result = "<table border = ‘1‘>";
            result += "<tr><td>姓名</td><td>性别</td><td>学号</td><td>家庭住址</td><td>电话号码</td></tr>";
            var contact = JSON.parse(str);
            result += "<tr><td>"+contact.name+"</td><td>"+contact.sex+"</td><td>"+contact.num+"</td><td>"+contact.add+"</td><td>"+contact.tel+"</td></tr>";
            result += "</table>";
            resource.innerHTML = result;
        } else {
            alert("系统无此人");
            return;
        }

    } else {
        alert("您暂时还无法使用本功能");
        return;
    }
}

删除

function del() {
    var del_name = document.getElementById("del_name").value;
    if(window.localStorage) {
        var result = localStorage.getItem(del_name);
        localStorage.removeItem(del_name);
        if(result != null) {
            alert("删除成功");
        } else {
            alert("系统无此人");
            return;
        }

    } else {
        alert("您暂时还无法使用本功能");
        return;
    }
}

在这里如果想对所有数据做删除处理则只需将localStorage.removeItem();换成localStorage.clear();即可

时间: 2024-10-24 19:28:40

Web Storage--HTML5本地存储的相关文章

利用HTML5开发Android(4)---HTML5本地存储之Web Storage

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管

html5本地存储(一)------ web Storage

在html5中与本地存储相关的两个相关内容:Web Storage  与本地数据库 web Storage存储机制是对html4中的cookie存储机制的一个改善.web Storage就是在web上存储数据的功能(针对客户端本地),使用它可以再客户端本地建立一个数据库,这样可以存储页面内容在本地,还加快了访问数据的速度. web Storage分两种:sessionStorage   与  localStorage 一.sessionStorage sessionStorage为临时保存,将数

前端新技术:HTML5本地存储之Web Storage

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管

HTML5 本地存储Web Storage简单了解

?HTML5本地存储规范,定义了两个重要的API :Web Storage  和  本地数据库Web SQL Database. 本地存储Web Storage 实际上是HTML4的cookie存储机制的一个改进版本,然而两种机制的功能又不相同.web storage 的作用是在网站中把有用的信息存储到本地的计算机 或移动设备上,然后根据实际需要从本地读取信息. web storage 提供了两种存储类型API接口:sessionStorage 和 localStorage .sessionSt

HTML5本地存储 Web Storage

Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API  sessionStorage 和 localStorage,二者的差异主要是数据的保存时长及数据的共享方式. localStorage 一直存储在本地,数据存储是永久的,除非用户或程序对其进行删除操作: sessionStorage在会话期内有效,数据在浏览器关闭后自动删除: localStorage是基于域的,任何在该域内的页面都可以访问, sessionStorage在保

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

html5的一个非常cool的功能,就是web storage,类似于之前的cookie,不过与之不同的是,web storage 拥有本地5兆的容量可以存储,而cookie却只有4K,这是完全不能比的优势. webstrange又分为:localstorage,sessionstorage和本地数据库. 接下来我就来一一介绍: 1 localstorage  localstorage 的使用比较简单,方法有: localStorage.setItem(key,value);//保存数据 loc

HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(19)--HTML5 Local Storage(本地存储) 一.浏览器存储的发展历程 本地存储解决方案很多,比如Flash SharedObject.Google Gears.Cookie.DOM Storage.User Data.window.name.Silverlight.Open Database等. 借用网上的一张图来看下目前主流的本地存储方案: Cookie: 在web中得到广泛应用,但局限

利用HTML5开发Android(7)---HTML5本地存储之Database Storage

在上一篇<HTML5本地存储之Web Storage篇>中,简单介绍了如何利用localStorage实现本地存储:实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLite数据库比较熟悉. HTML5中的数据库操作比较简单,主要有如下两个函数: 1.通过openDatabase

HTML5本地存储——Web SQL Database

在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就无能为力了,灵活大不够强大. Web SQL Database 我们经常在数据库中处理大量结构化数据,html5引入Web SQL Database概念,它使用 SQL 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite,悲剧正是产生于此,Web SQL Data

HTML5本地存储之Database Storage篇

在上一篇<HTML5本地存储之Web Storage篇>中,简单介绍了如何利用localStorage实现本地存储:实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLite数据库比较熟悉. HTML5中的数据库操作比较简单,主要有如下两个函数: 1.通过openDatabase