idbworker.js (969B)
1 'use strict'; 2 var db 3 4 self.addEventListener('message', MessageHandler, false) 5 6 function MessageHandler(e) 7 { 8 var open_rq, idb = self.indexedDB || self.msIndexedDB || self.webkitIndexedDB || self.mozIndexedDB 9 10 if (!idb) 11 { 12 self.postMessage(false) 13 return 14 } 15 else 16 self.postMessage(true) 17 18 open_rq = idb.open("webworker101", 1) 19 20 open_rq.onupgradeneeded = function(e) { 21 db = e.target.result 22 db.createObjectStore("store") 23 .add("test", 1) 24 } 25 open_rq.onsuccess = function(e) { 26 db = e.target.result 27 db.onerror = function() { self.postMessage("db.error") } 28 db.transaction("store", "readonly").objectStore("store").get(1).onsuccess = function(e) { 29 self.postMessage(e.target.result) 30 db.close() 31 } 32 } 33 open_rq.onerror = function() { self.postMessage("open.error") } 34 open_rq.onblocked = function() { self.postMessage("open.blocked") } 35 }