123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- //index.db.js;
- /*********
- *说明:HTML本地数据库存储操作类
- *编写:张祥明
- *时间:2017-09-27
- *************/
- window.indexedDB = window.indexedDB || window.mozIndexedDB ||window.webkitIndexedDB ||window.msIndexedDB;
- window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
- window.IDBKeyRange = window.IDBKeyRange ||window.webkitIDBKeyRange ||window.msIDBKeyRange;
- (function (window) {
- 'use strict';
- var db = {
- version: 1, // important: only use whole numbers!
- objectStoreName: 'ZLPMS',
- instance: {},
- upgrade: function (e) {
- var
- _db = e.target.result,
- names = _db.objectStoreNames,
- name = db.objectStoreName;
- if (!names.contains(name)) {
- _db.createObjectStore(
- name,
- {
- keyPath: 'id',
- autoIncrement: true
- });
- }
- },
- errorHandler: function (error) {
- window.alert('error: ' + error.target.code);
- },
- isIndexedDB: function () {
- var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
- if (indexedDB) {
- return true;
- }
- else {
- return false;
- }
- } ,
- open: function (callback) {
- var request = window.indexedDB.open(
- db.objectStoreName, db.version);
- request.onerror = db.errorHandler;
- request.onupgradeneeded = db.upgrade;
- request.onsuccess = function (e) {
- db.instance = request.result;
- db.instance.onerror =
- db.errorHandler;
- callback();
- };
- },
- getObjectStore: function (mode) {
- var txn, store;
- mode = mode || 'readonly';
- txn = db.instance.transaction(
- [db.objectStoreName], mode);
- store = txn.objectStore(
- db.objectStoreName);
- return store;
- },
- save: function (data, callback) {
- db.open(function () {
- var store, request,
- mode = 'readwrite';
- store = db.getObjectStore(mode),
-
- request = data.id ?
- store.put(data) :
- store.add(data);
- request.onsuccess = callback;
- });
- },
- getAll: function (callback) {
- db.open(function () {
- var
- store = db.getObjectStore(),
- cursor = store.openCursor(),
- data = [];
- cursor.onsuccess = function (e) {
- var result = e.target.result;
- if (result &&
- result !== null) {
- data.push(result.value);
- result.continue();
- } else {
- callback(data);
- }
- };
- });
- },
- get: function (id, callback) {
- // id = parseInt(id);
- db.open(function () {
- var store = db.getObjectStore();
- var request = store.get(id);
- request.onsuccess = function (e) {
- callback(e.target.result);
- };
- });
- },
- 'delete': function (id, callback) {
- // id = parseInt(id);
- db.open(function () {
- var
- mode = 'readwrite',
- store, request;
- store = db.getObjectStore(mode);
- request = store.delete(id);
- request.onsuccess = callback;
- });
- },
- deleteAll: function (callback) {
- db.open(function () {
- var mode, store, request;
- mode = 'readwrite';
- store = db.getObjectStore(mode);
- request = store.clear();
- request.onsuccess = callback;
- });
- }
- };
- window.zlsoft = window.zlsoft || {};
- window.zlsoft.db = db;
- }(window));
|