Files
youlegames/codes/games/sales_service/indexDb.js
2026-02-04 23:47:45 +08:00

199 lines
6.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(){
var dbObject = {};
dbObject.open = function(params){
//数据库名
dbObject.db_name = params.db_name;
//数据库版本
dbObject.db_version = params.db_version;
//存储对象名
dbObject.store_name = params.store_name;
//IndexedDB对象
dbObject.db = null;
if (!window.indexedDB){
console.log("你的浏览器不支持IndexedDB,请更换浏览器");
}
var request = indexedDB.open(dbObject.db_name, dbObject.db_version);
//打开数据库成功
request.onsuccess = function(event){
console.log("打开IndexedDB数据库" + dbObject.db_name + "成功");
dbObject.db = event.target.result;
if (params.success_callback){
params.success_callback();
}
}
//打开数据库失败
request.onerror = function(event) {
console.log("打开IndexedDB数据库" + dbObject.db_name + "失败");
console.log(event);
if (params.error_callback){
params.error_callback();
}
}
//当打开的数据库版本高于当前版本时触发
request.onupgradeneeded = function(event){
console.log("IndexedDB数据库" + dbObject.db_name + "版本升级到" + dbObject.db_version);
dbObject.db = event.target.result;
if(!dbObject.db.objectStoreNames.contains(dbObject.store_name)){
dbObject.db.createObjectStore(dbObject.store_name);
}
}
}
//添加或修改
dbObject.put = function(key, value){
try{
if (!dbObject.db){
return;
}
//此处必须显式声明事务
var transaction = dbObject.db.transaction(dbObject.store_name, "readwrite");
var store = transaction.objectStore(dbObject.store_name);
var request = store.put(value, key);
request.onsuccess = function(){
// console.log("编辑IndexedDB记录成功" + key);
}
request.onerror = function(event){
console.log("编辑IndexedDB记录失败" + key);
console.log(event);
}
}
catch(e){
console.log(min_now() + "添加或修改IndexedDB失败");
console.log(e);
console.log(key);
console.log(value);
}
}
//删除
dbObject.delete = function(key){
try{
if (!dbObject.db){
return;
}
var transaction = dbObject.db.transaction(dbObject.store_name, "readwrite");
var store = transaction.objectStore(dbObject.store_name);
var request = store.delete(key);
request.onsuccess = function(){
// console.log("删除IndexedDB记录成功" + key);
}
request.onerror = function(event){
console.log("删除IndexedDB记录失败" + key);
console.log(event);
}
}
catch(e){
console.log(min_now() + "删除IndexedDB失败");
console.log(e);
console.log(key);
}
}
//根据key获取value
dbObject.get = function(key, succ_callback){
try{
if (!dbObject.db){
return;
}
var transaction = dbObject.db.transaction(dbObject.store_name, "readwrite");
var store = transaction.objectStore(dbObject.store_name);
var request = store.get(key);
request.onsuccess = function(){
succ_callback(request.result);
}
request.onerror = function(event){
console.log("获取IndexedDB记录失败" + key);
console.log(event);
}
}
catch(e){
console.log(min_now() + "获取IndexedDB失败");
console.log(e);
console.log(key);
}
}
//获取所有的value
dbObject.get_allvalue = function(success_callback, error_callback){
try{
if (!dbObject.db){
return;
}
var transaction = dbObject.db.transaction(dbObject.store_name, "readwrite");
var store = transaction.objectStore(dbObject.store_name);
var request = store.getAll();
request.onsuccess = function(){
if (success_callback){
success_callback(request.result);
}
}
request.onerror = function(event){
console.log("获取IndexedDB记录失败all");
console.log(event);
if (error_callback){
error_callback();
}
}
}
catch(e){
console.log(min_now() + "获取全部的IndexedDB失败");
console.log(e);
}
}
//游标遍历
dbObject.get_cursor = function(success_callback, error_callback){
try{
if (!dbObject.db){
return;
}
var transaction = dbObject.db.transaction(dbObject.store_name, "readwrite");
var store = transaction.objectStore(dbObject.store_name);
var request = store.openCursor();
request.onsuccess = function(event){
if (success_callback){
success_callback(event.target.result);
}
}
request.onerror = function(event){
console.log("获取IndexedDB记录失败游标");
console.log(event);
if (error_callback){
error_callback();
}
}
}
catch(e){
console.log(min_now() + "获取IndexedDB游标失败");
console.log(e);
}
}
//清除整个对象存储(表)
dbObject.clear = function(){
try{
if (!dbObject.db){
return;
}
var transaction = dbObject.db.transaction(dbObject.store_name, "readwrite");
var store = transaction.objectStore(dbObject.store_name);
var request = store.clear();
request.onsuccess = function(){
console.log("清空IndexedDB对象存储成功" + dbObject.store_name);
}
request.onerror = function(event){
console.log("清空IndexedDB对象存储失败" + dbObject.store_name);
console.log(event);
}
}
catch(e){
console.log(min_now() + "清除IndexedDB失败");
console.log(e);
}
}
window.dbObject = dbObject;
})();