什么是HTML5 web storage?

使用HTML5,web页面能够使用用户的浏览器本地保存数据。

在曾经,通常我们使用cookie来保存用户数据。然而使用web存储更加安全和高速。数据不再包括在每个server请求中。仅仅存在你须要的时候。

同一时候我们也能够保存大量数据。而不影响站点的性能。

数据都保存成key/value形式,一个web页面仅仅能够訪问自己的数据。

浏览器支持

IE8+。Firefox,Chrome,Opera和Safari 5都支持这个特性。

注意IE7和更早版本号不支持这个特性。

localStorage和sessionStorage

这里有俩个新的用来保存数据的属性:

  • localStorage - 没有过期时间的方式保存数据 
  • sessionStorage - 保存数据到session

在使用web storage之前,检查浏览器是否支持localStorage和sessionStorage:


  1. if(typeof(Storage)!=="undefined"){
  2. // Yes! localStorage and sessionStorage support!
  3. // Some code.....
  4. }else{
  5. // Sorry! No web storage support..
  6. }

localStorage Object

localStorage对象保存数据没有过期时间的问题。

数据在浏览器关闭后不会删除,并且一直有效。


  1. localStorage.lastname="Smith";
  2. document.getElementById("result").innerHTML="Last name: "
  3. + localStorage.lastname;

在线演示

代码说明:

  • 创建了一个localStorage 键值对,使用key="lastname"。 value="Smith" 。
  • 得到lastname相应的值,并且赋予id=result的元素

小技巧:键值对会以字符串方式存储。记住在必要的时候将他们转为其它格式

以下的样例计算了一个用户点击按钮的次数。

在这段代码中,将会把值转化为数字,这样能够使用加法:


  1. if (localStorage.clickcount){
  2. localStorage.clickcount=Number(localStorage.clickcount)+1;
  3. }else{
  4. localStorage.clickcount=1;
  5. }
  6. document.getElementById("result").innerHTML="You have clicked the button " + localStorage.clickcount + " time(s).";

在线演示

sessionStorage对象

sessionStorage对象和localStorage对象相似,除了保存的数据仅仅在当前session中有效。数据将会在用户关闭浏览器窗体时失效。

以下代码在当前的session中计算了用户点击的次数:


  1. if (sessionStorage.clickcount){
  2. sessionStorage.clickcount=Number(sessionStorage.clickcount)+1;
  3. }else{
  4. sessionStorage.clickcount=1;
  5. }
  6. document.getElementById("result").innerHTML="You have clicked the button " + sessionStorage.clickcount + " time(s) in this session.";

HTML5之WEB Storage的更多相关文章

  1. Html5的学习之旅-Html5的web Storage概述(16)

    在html5中除了canvas,另外一个非常重要的功能是客户端本地存储web storage,之前可以在用户端Cookies存贮用户名等信息,后来发现Cookies存储存在以下问题: 大小:Cooki ...

  2. [Selenium] Android HTML5 中 Web Storage

    在 HTML5 中,Web Storage 这个新特性可让用户将数据存储在本地的浏览器中.在早期的浏览器中可通过 cookies 来完成这个任务,但 Web Storage 会更加安全和高效,且 We ...

  3. HTML5存储 ——Web Storage(localStorage 和 sessionStorage)

    一.localStorage对象临时储存API 方法: 1.localStorage.setItem(key,value)---设置存储内容 2.localStorage.getItem(key)-- ...

  4. HTML5本地存储 Web Storage

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

  5. HTML5 高级系列:web Storage

    前言 HTML5 的 web Storage 存储方式有两种:localStorage 和 sessionStorage. 这两种方式都是通过键值对保存数据,存取方便,不影响网站性能.他们的用法相同, ...

  6. HTML5 Web Storage 特性

    原文地址: Using HTML5 Web Storage 原文日期: 2010年06月28日 翻译日期: 2013年08月12日 当下Web开发领域最火爆的词语当属 HTML5.HTML5标准的新特 ...

  7. H5本地储存Web Storage

    一.本地存储由来的背景 由于HTML4时代Cookie的大小.格式.存储数据格式等限制,网站应用如果想在浏览器端存储用户的部分信息,那么只能借助于Cookie.但是Cookie的这些限制,也就导致了C ...

  8. 解析H5本地储存Web Storage

    一.本地存储由来的背景 由于HTML4时代Cookie的大小.格式.存储数据格式等限制,网站应用如果想在浏览器端存储用户的部分信息,那么只能借助于Cookie.但是Cookie的这些限制,也就导致了C ...

  9. HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

    1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息.   但是c ...

随机推荐

  1. ORACLE 中 TRANSLATE的用法

    --TRANSLATE(string,from_str,to_str) --to_str和from_str中的字符一一对应 --如果string里有,from_str字符集里没有的字符,将保留 --如 ...

  2. C# Lock 解读

    一.Lock定义     lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断.它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行, ...

  3. Java 调用 C/C++ 之 JNA 系列实战篇 —— 输出char * (六)

    一. 工作环境 1. windows (64位), JDK (64位),dll文件 (64位) 2. Linux (64位),      JDK (64位),so文件 (64位) 3. JNA的官方资 ...

  4. vSphereClient向ESXi主机分配许可证

    ESXi服务器需要使用VMwarevSphereClient进行管理(7.0+版本可以通过浏览器进行管理)在VMware vSphere client可以方便的创建.管理虚拟机,并分配相应的资源.要能 ...

  5. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)

    性能分析工具jstatjmapjhatjstack 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps.jsta ...

  6. Xcode下开发c静态库for ios CPU架构 静态库合并

    新建一个Cocoa Touch Static  Library工程 1,先在工程左侧删除“工程名Tests”下的文件与文件夹(从内往外删,最后删除"工程名Tests文件夹") :D ...

  7. Windwos下连远程linux Hbase小问题

    前几天,兴起想仔细玩玩hbase,细细去研究一下,写了个小demo,从win7去连接另一台T510的ubuntu上的hbase.很简单的crud的操作程序,没有看出来什么问题,但是跑起来,硬是好像bl ...

  8. Install EPEL repo on CentOS 7 / RHEL 7

    On CentOS 7, we have found without downloading the epel-release RPM package(as we used to do on prev ...

  9. 安装tomcat出现failed to install tomcat6 service错误及解决方法(转载)

    安装安装版tomcat会出现failed to install tomcat6 service ,check your setting and permissio的概率是非常低的,但是最近楼主就老出现 ...

  10. UE寻找Actor

    void FTestButtonModule::PluginButtonClicked() { GEngine->AddOnScreenDebugMessage(-, .f, FColor::R ...