Web存储
来源:互联网 发布:安卓一键锁屏推荐 知乎 编辑:程序博客网 时间:2024/06/05 08:43
web存储机制是通过字符串形式的key/value对来安全的存储和使用数据的方法。
Web存储与HTTPCookie的区别:
(1)存储的容量:Web存储量大,更安全,更容易使用;对于Cookie的存储量是有限制的。对于IE浏览器,Cookie至多存储4KB信息,Web存储可达10MB。
(2)存储的持久性:Web存储通过浏览器来永久存储合理大小的数据,Cookie没有为存储永久性的数据提供支持。
Web的两种客户端存储类型:
localStorage:本地存储,没有时间限制的数据存储,浏览器关闭不会丢失;
sessionStorage:会话存储,针对一个会话期的数据存储,浏览器关闭丢失。
Firefox没有支持localStorage,但它提供了一个globalStorage用于指定域创建本地存储区域。
兼容实现:
varstrDomain = “host.yourDomain”;(127.0.0.1)
varoStorage = window.locaStorage ? Window.locaStorage :window.globalSotrage[strDomain] ;
Storage接口:
oStorage.length:获取key/value对数量;
oStorage.key(index ):通过指定索引获取key,超过长度抛异常;
oStorage.getItem(key):获取建对应值;(oStorage.key)
oStorage.clear():清除所以key/value对;
oStorage.removeItem(key):删除指定键值对;
oStorage.setItem(key,value):添加或者更新键值;(oStorage.key=value)
Storage事件:
window.onstorage捕获事件。
Storage.setItem、Storage.removeItem、Storage.clear会触发该事件;
key:表示被更改的键;
oldValue:表示被更改的旧值;
newValue:表示更改后的新值;
url:表示更改发生的网址;
storageArea:表示发生更改的Storage对象。
Eg:
window.onstorage=function(even){
alert(even.key+ '由' +even.oldValue + '改为'+ even.newValue) ;
}
Web SQL Database:
使用WebSQL Database基本步骤:
(1)建立连接:
vardb =window.openDatabase('name','1.0','title',2.*1024*1024,[callBack]);
创建了一个数据库或建立与存在数据库对象的连接db,数据库名称name、版本号1.0、描述title、大小2M;
if(db)可以判断数据库是否可以连接数据库。
(2)执行SQL操作:
db.transaction(function(tx){})具有单一参数,参数是一个负责将数据库SQL操作限制在一个事务范围内的函数;(也可以定义在外面:function callback(tx){} db.transaction(callback))
tx为事务对象,有executeSql()方法执行SQL语句:
tx.executeSql(sql,data, successCallBack, errorCallBack) ;
后3个参数是可选的,sql查询的字符串、data数组,替换sql中?占位符、successCallBack成功执行的回调函数、errorCallBack操作失败的回调函数。
(3)对结果进行处理:
SQL操作成功有一个回调函数,该函数有两个参数(执行他的对象,查询结果)
functionqueryResult(tx, result){
varrowList = result.rows ; //获取记录行
varrow = rowList.item(index) ; //获取记录行
for(var j in row)
j+ ' = ' + row[j]; //获取记录行列名和值
}
SQL操作失败回调函数queryError(tx,err); //err错误对象
数据库操作:
创建数据库:openDatabase(name,version, displayName, estimatedSize,createationCallBack) //数据库名,版本号,描述,预估大小,数据库没有创建回调的异常处理函数
执行数据库事务:Database.transaction(callBack,[errorCallBack], [successCallBack]) //事务操作执行的回调函数,操作失败的回调函数,执行成功的回调函数
数据库版本管理:Database.changeVersion(oldVersion,newVersion, [callBack, [errorCallBack,[successCallBack]]]) //当前版本号,新版本号,执行回调函数,失败回调函数,成功回调函数
执行SQL语句:oSQLTransaction.executeSql(sql,[args, callback, errorCallBack]) 执行SQL语句,占位符数组,回调函数,失败回调函数
数据库操作结果处理:
执行executeSql()方法返回结果,作为executeSql的参数返回,结构为SQLResultSet对象,由SQLResultSet接口实现:
interfaceSQLResultSet {
readonlyattribute long insertId ; //记录行ID,如果多行,返回最后一行ID
readonlyattribute long rowsAffected; //SQL改变行数
readonlyattribute SQLResultSetRowList rows;//所有记录行结果
}
interfaceSQLResultSetRowList {
readonlyattribute unsigned long length; //行总数
getterany item(in unsigned long index); //获取指定行
}
- web 存储
- Web存储
- Web 存储
- web 存储
- web存储
- WEB存储
- web存储
- web存储
- #web存储
- web存储
- web 存储
- Web存储
- Web存储
- web存储 实现本地存储
- web workers及web存储
- HTML 5 Web 存储
- HTML5 Web存储
- Web存储小结
- 鸟哥linux学习笔记之学习Shell Scripts
- win7资源管理器菜单栏 无法隐藏
- 防御式编程
- CX51 用户手册----NOMODP2 伪指令
- 改变目录 xxx.vcproj stdafx.h 报错 xxx.pch
- Web存储
- Ext.Net 1.x_Ext.Net.GridPanel RowExpander运用案列
- 高级PHP应用程序漏洞审核技术[转]
- 1.利用CFX开发Web Service的客户端:执行wsdl2java
- Reactor构架模式及框架概述
- MFC中对窗口贴图
- 使用jQuery Mobile移动开发框架将博客网站快速转化为Mobile网站
- 动态添加控件并显示滚动条
- CX51 用户手册----NOOBJECT 伪指令