问题见代码。。。。
来源:3-3 indexDB(3)
慕莱坞1501479
2019-11-01 23:08:27
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
储存数据:<input type="" name="" id="need">
储存时间:<input type="" name="" id="timer">
<button id="btn">保存</button>
数据展示:<span id="span">暂无数据</span>
<script type="text/javascript">
if(new Date().getMinutes()>=localStorage.timer){
localStorage.clear(); //new Date().getMinutes()获取当前的分钟
}
else{
if(localStorage.leo){
span.innerHTML=localStorage.leo;
}
}
btn.onclick=function(){
localStorage.setItem("leo",need.value);
localStorage.setItem("timer",new Date().getMinutes()+Number(timer.value));
span.innerHTML=localStorage.leo;
}
//数据库
var request=indexedDB.open("test",4);//如果有数据库,就打开,没有就创建,版本号只能往上走,不能下降
console.log(request);
request.onsuccess=function(){ //onsuccess创建或打开成功
console.log("数据库创建成功");
}
request.onerror=function(){ //onerror打开失败(版本号不能降低)
console.log("数据库读取失败");
}
request.onupgradeneeded=function(){
console.log("版本号升级了");//版本升级时触发的函数
var db=request.result;
db.createObjectStore("test2",{keyPath:"id"});//创建表
} //设置自增主键{autoIncrement:true}
var json=[{
"id":1001,
"name":"leo",
"age":18
},{"id":1002,
"name":"sky",
"age":19},
{"id":1003,
"name":"blue",
"age":20},]
setTimeout(function(){
db=request.result;
var transaction=db.transaction("test2","readwrite");//以读写方式打开表
var store=transaction.objectStore("test2");//打开具体的哪个表
/*for(var i=0;i<json.length;i++){
store.add(json[i]); } //将数据添加入表中*/ /*老师,我把这个for循环像视频中一样注释掉,就能后面的 console.log(requestNode)就能打印出来,不注释就不 能 打印出来,这是为什么呢*/
var requestNode=store.get(1001);
requestNode.onsuccess=function(){
console.log(requestNode);}
},300)
2回答
慕侠97781
2019-11-02
这个应该是和浏览器机制有关系的。
indexedDB因为其存储空间大,几乎没有存储上限。
工作中一般会用后台数据库的,这个东西可以作为了解
慕莱坞1501479
提问者
2019-11-01
老师,还有这IndexedDB这种数据库有储存时间和容量限制的吗
相似问题