Web Storage

介绍

Web storage 是在web上存储数据的功能,这里的存储是针对客户端来说的. 具体说分为两种:

  • seesionStorage
    数据存储在 session 对象中。session,是指用户打开浏览器窗口浏览网站,从进入网站到关闭
    这个窗口所经过的这段时间。seesion 对象可以用来保存这段时间所有的数据。
  • localStorage
    近数据持久化在客户端本地,即使浏览器关闭了,该数据也会存在,下次打开浏览器访问,数据也
    会存在。

用法

它们两个有非常相似的 API , 它们主要存储 key-value 结构:

sessionStorage localStorage 功能
setItem(key,value) setItem(key,value) 保存数据
getItem(key) getItem(key) 获取数据
removeItem(key) removeItem(key) 移除数据
窗口关闭 clear() 清空数据

它们两个共同监听 window.storage 事件,当 sessionStorage 和 localStorage 数组发生改
变的时候执行回调。示例代码:
window.addEventListener('storage', function(event){ //当 storage 的数据发生变化是执行 });
在事件处理函数中,事件 event 对象有下面几个属性

  • event.key 在 storage 中数据被修改的键值
  • event.oldValue 在 storage 中数据被修改前的值
  • event.newValue 在 storage 中数据被修改后的值
  • event.url 在 storage 中页面URL地址
  • evnet.storageArea 当前变动的 sessionStorage 或 localStorage

注: 它们两个的 value 值不能接受JSON对象,只能存储字符串。所有保存对象的时候我们可以借助
JSON.stringify 和 JSON.parse 这两个方法来实现。

WebSql

介绍

html5 中大大丰富了客户端本地可以存储内容,添加了很多功能将原本必须保存在服务器上的数据转为保存在客户端,从而提供 Web 程序的性能,减轻服务器的负担。WebSql 的规范使用的是SQLLite,但可悲的是 Firefox 和 IE 浏览器都不支持, W3C 官方在 2011 年 11 月声明已经不再维护 Web SQL Database 规范,由于其广泛的实现程度,了解这些 API 对 Web 开发还是非常有必要的。

用法

提供了三个重要的API,大致先简单介绍下:

  • openDatabase 创建一个访问数据库的对象
  • transaction 用来执行事务处理,控制事务提交或回滚
  • executeSql 用来执行Sql

接下来我们详细说一下每个API的用法:

  1. var db = openDatabase('myDb', '1.0', 'Test DB', 1024);
    该方法有接受四个参数:
    1. 数据库名称
    2. 数据库版本
    3. 数据库描述
    4. 数据库大小。
    方法的返回值是创建后的数据库访问对象,如果该数据库不存在,会自动创建它。

  2. db.transaction(function(tx) { tx.executeSql(......); }
    该方法可以接受三个参数:
    1. 事务内容的一个方法(参数为事务上下文对象)
    2. 事务执行成功的回调
    3. 事务失败的回调。
    使用事务处理可以防止在对数据库进行访问的时候和操作的时候不受到外界的干扰,在Web上,同时
    会有好多用户对页面进行访问。

  3. tx.executeSql('insert ... values(?)',[name], dataHandler, errorHandler')
    该方法也接受四个参数:
    1. 要执行的sql语句
    2. 用于替换sql语句中 ? 参数
    3. 执行成功的回调函数,回调函数有两个参数,第一个是 transaction对象,第二个是操作结果对象
    4. 回调函数有两个参数,回调函数有两个参数,第一个是 transaction对象,第二个是错误消息

Web 存储的更多相关文章

  1. html5的web存储

    在html5标准之前,web存储信息需要cookie来完成,但是cookie不适合大量数据存储.因为需要等待服务器响应,所以速度慢/效率低. 本地存储的特点: localstorage是仅存储在用户的 ...

  2. 临时存存储页面上的数据---Web存储

    HTML5 Web存储的两种方法使用 localStorage和sessionStorage 参考: http://www.cnblogs.com/taoweiji/archive/2012/12/0 ...

  3. 【读书笔记】HTML5 Web存储

    PS:这里讲web存储,主要是在客户端存储的一些技术:cookie,localstorage,sessionstorage,WebSQL.     Cookie   Cookie是HTML4中在客户端 ...

  4. 【html5】Web存储_locaStorage对象的应用

    Web存储 html5可以在本地存储用户浏览的数据,数据的存储原理是以 键/值 存储的 存储对象分类 localStorage:没有时间限制的数据存储 sessionStorage:针对一个会话的数据 ...

  5. 【高级功能】使用Web存储

    Web存储允许我们在浏览器里保存简单的键/值数据.Web存储和cookie很相似,但它有着更好的实现方式,能保存的数据量也很大.这两种类型共享相同的机制,但是被保存数据的可见性和寿命存在区别. PS: ...

  6. 【温故而知新-Javascript】使用Web存储

    Web存储允许我们在浏览器里保存简单的键/值数据.Web存储和cookie很相似,但它有着更好的实现方式,能保存的数据量也很大.这两种类型共享相同的机制,但是被保存数据的可见性和寿命存在区别. PS: ...

  7. Web存储(Web Storage)的浏览器支持情况

    所有很酷的功能特征的出现最关键的就是浏览器的支持情况,幸运的是,所有的现代浏览器都支持HTML5 Web存储(Web Storage),从IE8开始也支持它.HTML5 Web存储(Web Stora ...

  8. HTML5本地化应用开发-HTML5 Web存储详解

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

  9. HTML5 Web存储(Web Storage)技术及用法

    在如今的Web开发中,HTML5是大家讨论的最大一个话题.HTML5提供的新功能特征使得Web程序员如虎添翼,并免去了以往钻研各种方法来让网站更好.更快.更灵活的气力.这些新功能中有一个非常让我感兴趣 ...

  10. Web存储(Web Storage)介绍

    Web存储即在客户端存储数据. 在没有Web Storage之前,是通过cookie来在客户端存储数据的.但是由于 浏览器能存cookie数比较少.如IE8,Firefox,opera每个域可以保存的 ...

随机推荐

  1. boosting、adaboost

    1.boosting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.他是一种框架算法,主要是通过对样本集的操作获 ...

  2. $.extend()的实现源码 --(源码学习1)

    目标: $.extend({         add:function(a,b){             return a + b;         }     }) console.log($.a ...

  3. .NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper

    好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起 ...

  4. angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用

    今天我们要讲的是ng2的路由系统. 例子

  5. Redis百亿级Key存储方案(转)

    1 需求背景 该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperi ...

  6. pt-heartbeat

    pt-heartbeat是用来监测主从延迟的情况的,众所周知,传统的通过show slave status\G命令中的Seconds_Behind_Master值来判断主从延迟并不靠谱. pt-hea ...

  7. Struts的拦截器

    Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...

  8. SpringMvc中的数据校验

    SpringMvc中的数据校验 Hibernate校验框架中提供了很多注解的校验,如下: 注解 运行时检查 @AssertFalse 被注解的元素必须为false @AssertTrue 被注解的元素 ...

  9. Python3中的字符串函数学习总结

    这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...

  10. 【AutoMapper官方文档】DTO与Domin Model相互转换(下)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...