为什么在onupgradeneeded事件中createObjectStore?
为什么在onupgradeneeded事件中createObjectStore,而不是onsuccess事件中创建?
request.onupgradeneeded = function(e) {
var store = null;
db = e.target.result;
console.log('upgradeneeded');
if (!db.objectStoreNames.contains(osName)) {
db.createObjectStore(osName, {autoIncrement: true})
}
}
正在回答
这是indexedDB数据库中规定的在onupgradeneeded事件中创建和维护数据表及更新ObjectStore,等创建或者升级成功之后会调用success事件。
祝学习愉快!
1、当第一次打开页面时,代码执行的顺序是:
先执行onupgradeneeded事件,再执行success事件。就是老师上次的解释:
第一次执行的时候可以理解成版本更新,因为开始是没有这个数据库的,所以会执行onupgradeneeded事件。在这个事件中判断了是否包含指定数据表,如果不包括会直接创建。
继续刷新页面,结果为:
只执行了success事件这是因为版本号没有更新。这时候手动修改版本号之后才会执行onupgradeneeded事件。
2、版本号是版本的标识号,例如每一个软件都有一个版本号,Chrome浏览器现在的版本是:
软件做出改动时,就会版本更新。
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星