在indexedDB中调用onupgradewneed方法的时间和原因
When and why is the onupgradeneeded method called in indexedDB?
我正在将IndexedDB用于测试项目。以下是一些示例代码:
var indexedDB = window.indexedDB || window.webkitIndexedDB
||window.mozIndexedDB||window.msIndexedDB;
var request = indexedDB.open("mydb",2),
customerData=[
{ssn:"444-44-4444",name:"Bill",age:35,email:"bill@company.com"},
{ssn:"555-55-5555",name:"Donna",age:32,email:"donna@home.org"}
];
request.onerror = function(event){
};
request.onupgradeneeded = function(event) {
var objectStore = db.createObjectStore("customers",{keyPath:"ssn"});
objectStore.createIndex("name","name",{unique:false});
objectStore.createIndex("email","email",{unique:true});
for(var i in customerData){
objectStore.add(customerData[i]);
}
};
request.onsuccess = function(e) {
};
我真正不明白的是,当我的请求对象运行onupgradeneeded
而不是onsuccess
时(当然,假设没有错误)。是在不存在对象存储的情况下吗?或者当创建一个新的数据库版本时?
感谢
据此:https://developer.mozilla.org/en-US/docs/IndexedDB/Using_IndexedDB?redirectlocale=en-美国&redirectslug=IndexedB%2FIndexedDB_primer您已经有了正确的答案:
当您更改数据库版本时会调用onupgradeneeded
:从无数据库到第一个版本,从第一个版本到第二个版本。。。
每次发出新请求时都会调用onsuccess
:即使数据库模式没有更改。
相关文章:
- 指令加载真的很长,检查加载时间的方法
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- 有没有更好的方法可以测量从Ajax调用返回数据所需的总时间
- 在indexedDB中调用onupgradewneed方法的时间和原因
- 向 Firebase “push” 方法添加时间戳
- YQL推特时间线超出速率限制.解决方法
- 有没有一种方法可以在长时间运行的JavaScript操作之前强制回流
- 获取Web服务器时间并将其显示在网页上的正确方法
- 将时间戳转换为人类可读日期的简单方法
- 在 JSON/Javascript 中表示一天中的时间的首选方法
- 一种在指定时间后更改的背景图像之间添加更平滑过渡的简单方法
- 在固定的时间间隔后定期执行相同任务的不同方法
- 时间戳脚本,监视 C 列中的更改,在 E 列 [操作方法] 上设置时间戳
- 查找开始时间和结束时间数组之间的间隔的最佳方法是什么
- 在一段时间后自动调用 JavaScript 函数的正确方法是什么
- 使用周期性时间调用 Audioparam 方法
- 如何在页面中应用 JavaScript replace() 方法 2 时间
- 随着时间的推移,JavaScript 的 setInterval() 方法运行是否会消耗明显的处理能力
- 使用日期时间选择器 UI 选择在日期时间之后使用什么方法触发事件
- jQuery持续时间方法