html5(八) IndexedDB
IndexedDB 是一个数据库系统,它在用户的计算机上存储索引信息。
IndexedDB与传统的数据库不同。在IndexedDB中,数据库中的信息以对象的形式存储在对象库表中。对象库没有特定的结构,只能够找到其中对象的索引和名称。这些对象也没有既定的结构,每个对象的结构可以各不相同。这有点类似NoSQL DB
window.indexedDB.open(数据库名, 版本号);
version属性——返回当前的版本值
setVersion()方法——给使用中的数据库分配一个新版本值。(可以是数字,也可以是字符)
createObjectStore(name,keyPath,autoIncrement)——这个方法用属性制定的名称和配置集合来创建一个对象库。
name必须的,keyPath属性用来生命每个对象的公共索引。autoIncrement属性是个bool值,用来指定对象库是否拥有一个键生成器。
objectStore(name)——要访问对象库中的对象,必须启动一个事务,并未这个事物打开对象库。
deleteObjectStore(name)——删除name属性名的对象库。
只有在创建数据库或者将数据库升级为新版本的时候,才能应用createObjectStore。deleteObjectStore 方法,以及负责数据库配置的其他方法。
索引
要在对象库中寻找对象,需要将这些对象的某些属性设置为索引。
一 可以在创建的时候设置索引 createObjectStore(name,keyPath,autoIncrement)
二 createIndex(name,properly,unique)——这个方法为指定对象创建索引。name:对象名。property:属性名 unique:是个布尔值,代表是否存在两个或多个对象共享同一索引值的可能。
index(name)——要使用的索引,必须县创建索引的引用,然后再将这个引用分配给事物。
deleteIndex(name)——删除索引
事务
操作必须通过事务来实现:生成事务方法——transaction()
事务属性:READ_ONLY:只读 READ_WRITE:读写 VERSION_CHANGE:修改版本
对象库的方法
add(object)——添加对象。如果对象中已经存在与索引相同的对象,则返回错误。
put(object)——修改对象。在对象库中已经存在与索引相同的对时,会覆盖与索引相同的对象。
get(key)——获取指定对象。key索引。
delete(key)——删除对象。
打开数据库
indexedDB属性和open()方法讲打开指定名称的数据库,如果数据库不存在,则用指定名称创建一个数据库。
window.indexedDB=window.webkitIndexedDB || window.mozIndexedDB;
var request = indexedDB.open('mydatabase');
request.addEventListener('error',showerror,false);
request.addEventListener('success',start,false);
function showerror(e){
alert(e.code+e.message);
}
function start(e)
{
db=e.result || e.target.result;
if(db.version==''){
var request = db.setVersion('1.0');
request.addEventListener('error',showerror,false);
request.addEventListener('success',createdb,false);
}
}
function createdb(){
var objectstore=db.createObjectStore('movies',{keyPath:'id'});
objectstore.createIndex('SearchYear','date',{unique:false});
}
API处理完数据库请求之后,会触发error,success事件。
添加对象
function addobject(){
var keywork="";
var title="";
var year="";
var transaction=db.transaction(['movies'],IDBTransaction.READ_WRITE);
var objectstore=transaction.objectStore('movies');
var request=objectstore.add({id:kework,name:title,date:year});
request.addEventListener('success',function(){ show(keywork)},false);
}
获取对象
function show(keyword){
var transaction = db.transactioin(['movies']);
var objectstore=transaction.objectStore('movies');
var request = objectstore.get(keywork);
request.addEventListener('success',showlist,false);
}
function showlist(e){
var result = e.result || e.target.result;
alert(result.id + result.name + result.date);
}
html5(八) IndexedDB的更多相关文章
- HTML5之indexedDB
从陌生到了解,花了一下午的时间,以下的地址还是不错的参考资料,省的到处去找 HTML5本地存储——IndexedDB(一:基本使用) 官方API接口文档 官方使用示例 html5 初试 indexed ...
- html5 初试 indexedDB
indexedDB是存储大量结构化数据的API,demo中用到的是异步API,麻烦的就是所有对indexedDB的操作都会发生一个异步的‘请求’,只要熟悉了API操作起来也很简单. http://ww ...
- HTML5之IndexedDB使用详解
随着firefox4正式版的推出,IndexedDB正式进入我们的视线.IndexedDB是HTML5-WebStorage的重要一环,是一种轻量级NOSQL数据库.相较之下,WebDataBase标 ...
- 使用 HTML5 的 IndexedDB API
1. [代码]判断是否支持 IndexedDB var indexedDB = window.indexedDB || window.webkitIndexedDB || window.moz ...
- HTML5 学习总结(一)——HTML5概要与新增标签
一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸 ...
- HTML5 学习笔记(一)——HTML5概要与新增标签
目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2 ...
- HTML5 学习笔记--------》HTML5概要与新增标签!
一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...
- IndexedDB参考资料网址
IndexedDB:浏览器里内置的数据库, Web骇客 http://www.webhek.com/indexeddb/ 前端的数据库:IndexedDB入门(很全面) http://web.jobb ...
- JavaScript的客户端存储
一.前言: 客户端存储实际上就是Web浏览器的记忆功能,通过浏览器的API实现数据存储到硬盘: 二.存储的不同形式: 1.Web存储:localStorage 和 sessionStorage 代表同 ...
- 浏览器相关--H5本地存储
因为项目需要,最近研究了一下HTML5本地存储相关的东西,在这简单的记录一下. 浏览器存储主要包括一下几个部分1. cookie2. localStorage3. sessionStorage4. i ...
随机推荐
- C工程 交互 ceph 分布式存储系统
网上看到有人问,如何在C项目里调用ceph系统对外提供的API,实现分布式存储. 我在网上搜到了相关信息,但是因为不是会员无法追加答案,故而,贴于此. 赠予有缘人:) ———————————————— ...
- CentOS 7 源码编译MariaDB
下载源码包 安装 SCL devtoolset-7 SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包.SCL为社区的以 ...
- 深入FM和FFM原理与实践
FM和FFM模型是最近几年提出的模型,凭借其在数据量比较大并且特征稀疏的情况下,仍然能够得到优秀的性能和效果的特性,屡次在各大公司举办的CTR预估比赛中获得不错的战绩.美团点评技术团队在搭建DSP的过 ...
- os.path.join
os.path.join()函数: 第一个以”/”开头的参数开始拼接,之前的参数全部丢弃. 以上一种情况为先.在上一种情况确保情况下,若出现”./”开头的参数,会从”./”开头的参数的上一个参数开始拼 ...
- EasyUI相关知识点整理
EasyUI相关知识整理 EasyUI是一种基于jQuery.Angular..Vue和React的用户界面插件集合.easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能.也就 ...
- Linux上不了网的几个排查点
下面是所有系统通用排查流程: 1.先ping网关: 例ping 192.168.12.1: 如果能通说明本地IP配置和本地到路由器的链路未发生问题. 如果不通需要检查本地设置和本地到路由的网线连接状态 ...
- JS的防抖与节流
JS的防抖与节流在进行窗口的resize.scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕.此时我们可以采用debounce(防抖)和t ...
- C语言实例:函数指针
函数指针:函数指针数组的使用: 不带参数和返回值的函数指针: #include <stdio.h> #include <stdlib.h> //定义一个没有返回值也没有入口参数 ...
- Python 静态方法,类方法,属性方法
方法的使用 静态方法 - 只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性. class Dog(object): def __init__(self,name): self.nam ...
- Linux操作oracle——关闭、停止、重启
基础命令: 在此之前,先介绍一下切换到oracle用户的命令 su - oracle (注意空格) 一.启动监听.启动数据库1.1启动监听1.切换到oracle用户下 2.启动监听: lsnrctl ...