关于HTML5 存储中indexedDB的一些问题

IndexedDB 是一种可以让你在用户的浏览器内持久化存储数据的方法。IndexedDB 为生成 Web Application 提供了丰富的查询能力,使我们的应用在在线和离线时都可以正常工作。

IndexedDB是一个比较新的存储方案,作为代替WebSQL出现的,可以再客户端想数据库那样存储数据。具体的支持情况可以查看Can I Use。可以看到支持情况并不怎么好。

具体的使用方法可以参考以下文章或视频:

下面是我在学习中遇到的一些问题。

1. 如果你正在使用《JavaScript高级程序设计(第三版)》

书里的讲解有一些过时,比如设置indexedDB的版本号,书里是这样给出的:

request = database.setVersion("1.0");

而setVersion方法已经废弃了,具体参见:
Issue 161114:IndexedDB: replacing setVersion with new “upgradeneeded” API

现在以 onupgradeneeded 事件代替。

2. IndexedDB提供的是异步的API

也就是说,每一次操作都需要在 success 和 error 执行相应操作老检测是否运行成功。

3. 数据库的结构只能在onupgradeneeded事件更改

我们这样打开一个数据库:

request = indexedDB.open(‘zjzhome‘);

会触发三个事件, upgradeneeded 、 success 和 error ,若果想改变数据库结构只能在 upgradeneeded 事件中操作,而不是在 success 事件中。

4. 增删改查都在事务中完成

var transaction = db.transaction([tableName], ‘readwrite‘); //事务
var objectStore = transaction.objectStore(tableName); //得到表的objectStore对象
//增删改查都借助这个objectStor对象
//add, put, delete, cursor

以上是我在学习中遇到的一些问题,以及解决方案。不定时更新。

时间: 2024-12-29 00:00:03

关于HTML5 存储中indexedDB的一些问题的相关文章

[HTML面试]HTML5 面试中最常问到的 10 个问题

1. HTML5 新的 DocType 和 Charset 是什么?HTML5 现在已经不是 SGML 的子集,DocType 简化为:                  <!doctype html>HTML 5 指定 UTF-8 编码的方式如下:                 <meta charset="UTF-8"> 2. 如何在 HTML5 页面中嵌入音频?HTML 5 包含嵌入音频文件的标准方式,支持的格式包括 MP3.Wav 和 Ogg:<

HTML5规范中的MessageEvent以及SSE

1.MessageEvent接口 在HTML5规范中定义的新的通信方式,无论是WebSocket还是SSE,包括实现视频.音频通信的WebRTC,都是基于HTML5规范中定义的一个接口:MessageEvent.这是一个基于消息的事件.首先我们可以看一下在JavaScript中,传统的事件类型有哪些. 传统的DOM事件的基类主要包括: (1)UIEvents:一般化的UI事件,其中鼠标事件和键盘事件都继承自UI事件: (2)MouseEvents:一般化的鼠标事件,比如click事件.mouse

前端存储之indexedDB

在前一个阶段的工作中,项目组要开发一个平台,为了做出更好的用户体验,要求前后端分离,所以这就要在前端实现存储,之后我去研究了下现在比较流行的前端存储数据库,找到了indexedDB,于是便对indexedDB做了一个较为深入的探索,此文就是记录探索过程的一些心得体会. indexedDB为何物 在使用一个技术之前,先搞清楚它是什么,这对你的理解很重要,从DB就可以看出,它肯定是一个数据库,而说到数据库,有两种不同类型的数据库,就是关系型数据库和非关系型数据库,关系型数据库如Mysql.Oracl

HTML5面试中常见的十个问题

1.新的 HTML5 文档类型和字符集是? HTML5 文档类型很简单:<!doctype html> HTML5 使用 UTF-8 编码示例:<meta charset="UTF-8″> 2.HTML5 废弃了哪些 HTML4 标签? HTML5 废弃了一些过时的,不合理的 HTML 标签: frame frameset noframe applet big center basefront 3.HTML5 有哪些新增的表单元素? HTML5 新增了很多表单元素让开发者

操作HTML5存储对象

读取HTML5的localStorahe和sessionStorage的内容,并删除存储的内容. #!usr/bin/env python #-*- coding:utf-8 -*- #操作HTML5存储对象 from selenium import webdriver import unittest,time class Html5Storage(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def

MD3200存储中虚拟机数据文件丢失的数据恢复过程

简介: 由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用,故障环境为Windows Server 2012服务器,系统中部署了Hyper-V虚拟机环境,虚拟机的硬盘文件和配置文件放在朝阳区某托管中心托管的DELL MD3200存储中(注:硬盘600G*4,4T*1).MD3200存储是由4块600G硬盘组成的阵列,用作存储虚拟机的数据文件.单块4T硬盘用作虚拟机数据文件的备份. 故障: 由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服

Android简易实战教程--第十五话《在外部存储中读写文件》

第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意这个问题 因此把文件保存到sd卡中.即今天所写的  第十五话<在外部存储中读写文件> 首先布局文件和第七话一样: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:

HTML5 canvas 中的arcTo()方法的用法

除了arc()之外,Canvas的绘图环境对象还提供了另一个用于创建圆弧路径的方法,那就是arcTo().改方法接受了5个参数: arcTo(x1,x2,y1,y2,radius) arcTo()方法的参数分别代表两个点击圆形半径.该方法一指定的半径来绘制一条圆弧,此圆弧与当前点到第一个点(x1,y1)的连线相切,而且第一个点到第二点(x2,y2)的连线也相切.该方法的这些特性,使得它非常适合用了绘制矩形的原角. 使用arcTo()方法: html: <!Doctyp html> <ht

关于 html5 代码中 &quot;xxx&quot;(双引号) 和 (单引号)&#39;xxx&#39; 的区别,谈谈我的经验!

最近在学习的时候看到有人问 "find" 与 'find' 的区别,发现了很多人都说没有区别,纯属个人爱好! 于是我好奇地试验了一下,发现了不一样的结果,通过对比分析发现 '' 和 "" (单引号,双引号),还是有很大的区别地! 建议:<!--************为了防止 引号匹配错误: 单引号与双引号交叉使用*******************--> 在使用html onclick 事件属性时候乱用 单引号 /双引号 会出错的,比如: <!