文章不是简单的的Ctrl C与V,而是一个字一个标点符号慢慢写出来的。我认为这才是是对读者的负责,本教程由技术爱好者成笑笑(博客:http://www.chengxiaoxiao.com/)写作完成。如有转载,请声明出处。

介绍

我们把数据存储在浏览器,一直使用的Cookie,但其实Cookie是有很多数量和大小的限制的。现在我们不用考虑这些了,我们将要学习一种基于HTML5的新技术Web存储。来解决这个问题。

背景

虽然Web存储已经有了自己的规范((http://dev.w3.org/html5/webstorage/) ),并且也在独立于Html5进行开发。但Web存储通常是集中在HTML5技术之下的。

不像cookie一样,数据存储在Web Storage意味着客户端不在请求服务器了。通常情况下,在浏览器和服务器来回的传递数据用的是HTTP request,这限制了如果要在客户端存储大量数据,必须使用Cookie,但是如果服务器端用不到Cookie。而在请求时,也会把Cookie发送到服务器,浪费了大量带宽。并且浏览器强制限制了Cookie的大小和数量,在一个相同的域名上,你可以存储不多于50个cookie和4KB的大小。

使用Web Stroage就会解决以上两个问题。首先,它不会离开浏览器,其次,也允许存储更多更大的数据。W3C推荐限制在5MB之内,但是如果用户需要更多的存储,是可以在浏览器中进行设置的。当前一般浏览器会允2MB的容量。

还有另外一种存储方式就是FileSystem API (www.w3.org/TR/file-system-api/)。简单来水就是使用此api可以进行文件的读写操作,目前来说谷歌浏览器是当前兼容此功能的。

当然如果你对数据库感兴趣的话,你可以看一下IndexedDB API (www.w3.org/TR/IndexedDB/),这个api提供了可以存储大量存储内容数据的能力。目前为止,只有火狐、谷歌、IE10以上支持。

使用Web Storage

Web Storage主要包括本地存储和基于Session的存储。它是在域名之上的。如果你不删除这些存储,它是会一直存在的。

如果你想添加和修改数据,使用下面的Api:

localStorage.setItem(“mydata”,”this is a data”);

获取数据:var dat = localStorage.getItem(“mydata”);

当然下面的形式也可以使用的:

第一种:

var data = localStorage["myData"];

localStorage["mydata"] = “this is a data”;

第二种:

var data = localStorage.mydata;

localStorage.mydata = “this is a data”;

删除数据:

删除指定名称的数据:localStorage.removeItem(‘mydata’);

删除所有Web Storage中的数据:localStorage.clear();

可以存储的数据类型

Web Storage只能够存取字符串数据,所以如果你想存取更多的数据的话,你可以使用json对象,把它转换为json字符串。

var data = {“key”:”value”,”key1″:”value1″};

localStorage.setItem(“mydata”,JSON.stringify(data));

当你需要读取数据的时候可以把json解析成对象:

var data = JSON.parse(localStorage.mydata);

WebStorage的数量:localStorage.length.

获取索引的键:

var key =localStorage.key(0);//获取索引为0的键

var data = localStoragegetItem(key);获取值

通过循环我们就可以查找到存储的所有键值对了。

sessionStorage和localStorage有相同的api。不同的是SessionStorage是基于会话级别的。

微信号:net4k8k(做(4k+8k)+月薪的程序员)

微信名称:net知识分享

介绍:主要以发布和分享.Net和安卓文章为主,争做全栈开发工程师,爱学习,爱挑战,爱编程。

打造C#入门教程。总结自己已经习得的技术体系。分享到网络。为中国的软件复兴贡献自己的一份力。

如有不恰当之处,还请指正。

作者:成笑笑

职业:应届毕业生,找工作中。

本人联系方式:cxx@chengxiaoxiao.com

GitHub:https://github.com/shellcheng

My CnBlogs:http://www.cnblogs.com/happpytoo/

HTML5本地化应用开发-HTML5 Web存储详解的更多相关文章

  1. html5的web存储详解

    以前我们在本地存储数据都是用document.cookie来存储的,但是由于其的存储大小只有4K左右,解析也很复杂,给开发带来了诸多的不便.不过现在html5出了web的存储,弥补了cookie的不足 ...

  2. HTML5有语义的内联元素详解

    HTML5有语义的内联元素详解 time标签 time 元素表示一个时间值,比如 5:35 P.M., EST, April 23, 2007.例如: Example Source Code:< ...

  3. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解

    原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...

  4. Web.xml详解(转)

    这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论. ---题记 一.            Web.xml详解: (一)  web.xml加载过程(步骤) 首 ...

  5. IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...

  6. IE8“开发人员工具”使用详解上(各级菜单详解)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各 ...

  7. Spark2.1.0——内置Web框架详解

    Spark2.1.0——内置Web框架详解 任何系统都需要提供监控功能,否则在运行期间发生一些异常时,我们将会束手无策.也许有人说,可以增加日志来解决这个问题.日志只能解决你的程序逻辑在运行期的监控, ...

  8. Android安卓书籍推荐《Android驱动开发与移植实战详解》下载

    百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...

  9. Java web Cookie详解(持久化+原理详解+共享问题+设置中文+发送多个Cookie)

    Java web Cookie详解 啥是cookie? 查询有道词典得: web和饼干有啥关系? 这个谜底等等来为大家揭晓 会话技术 web中的会话技术类似于生活中两个人聊天,不过web中的会话指的是 ...

随机推荐

  1. IP 碎片重组

    IP 碎片重组 内核中的IP重组函数. struct sk_buff * ip_defrag(struct sk_buff * skb, u32 user) { ...... //如果内核范围超出限制 ...

  2. 【CF】222 Div.1 B Preparing for the Contest

    这样类似的题目不少,很多都是一堆优化条件求最优解,这个题的策略就是二分+贪心.对时间二分, 对费用采用贪心. /* 377B */ #include <iostream> #include ...

  3. fsl的feat软件分包使用笔记

    introduction: 1. feat 是一种基于模型的fmri数据分析方法. 2. feat 首先使用顺手,至少看起来,比spm漂亮多了. feat是按照正常人的使用方法去设计的. spm 由于 ...

  4. java基于xml配置的通用excel单表数据导入组件(四、DAO主处理类)

    package XXXXX.manage.importexcel; import java.beans.IntrospectionException; import java.io.BufferedR ...

  5. [C# 网络编程系列]专题四:自定义Web浏览器

    转自:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html 前言: 前一个专题介绍了自定义的Web服务器,然而向Web服务器发 ...

  6. 2013 ACM区域赛长沙 K Pocket Cube hdu 4801

    题意:给了一个2*2的魔方..每步操作可以将任意一面翻转90度..现在问在N(<=7)步内.最多能翻出几面相同的. 直接打表模拟每种翻转情况 #include<cstdio> #in ...

  7. Bzoj 3450: Tyvj1952 Easy 期望/概率,动态规划

    3450: Tyvj1952 Easy Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 431  Solved: 325[Submit][Status] ...

  8. Bzoj 2346: [Baltic 2011]Lamp dijkstra,堆

    2346: [Baltic 2011]Lamp Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 428  Solved: 179[Submit][Sta ...

  9. sadfa

    2015/03/16         星期一 在Android平台下编写客户端程序,界面只有开关若干个. 代码更新与3.17号 mainActivity.java: package com.fan.m ...

  10. Hadoop: the definitive guide 第三版 拾遗 第十二章 之Hive初步

    Hive简介 Hive是建立在 Hadoop 上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储.查询和分析存储在 Hadoop 中的大规模数据的机制 ...