mirror of
https://github.com/futurepress/epub.js.git
synced 2025-10-03 14:59:18 +02:00
94 lines
1.9 KiB
JavaScript
94 lines
1.9 KiB
JavaScript
importScripts('core.js');
|
|
|
|
const DBNAME = "fpjs_db";
|
|
var indexedDB = self.indexedDB || self.mozIndexedDB || self.webkitIndexedDB || self.msIndexedDB;
|
|
|
|
var _q = [];
|
|
|
|
self.onmessage = function(event){
|
|
var path = event.data;
|
|
|
|
if(self._objectStore){
|
|
self.request(path, function(file){
|
|
self.save(path, file);
|
|
self.postMessage("succeeded");
|
|
});
|
|
}
|
|
|
|
|
|
};
|
|
|
|
self.opendb = function(callback){
|
|
|
|
var request = indexedDB.open(DBNAME);
|
|
|
|
request.onsuccess = function(event) {
|
|
self._db = request.result;
|
|
|
|
_db.onerror = function(event) {
|
|
self.postMessage("failed: " + event.target.errorCode);
|
|
};
|
|
|
|
self._transaction = _db.transaction(["files"], "readwrite");//.objectStore("files");
|
|
|
|
self._objectStore = self._transaction.objectStore("files");
|
|
|
|
if(callback) callback(_db);
|
|
|
|
};
|
|
|
|
|
|
request.onerror = function(event) {
|
|
self.postMessage("failed: " + event.target.errorCode);
|
|
};
|
|
|
|
|
|
}
|
|
|
|
self.request = function(path, callback) {
|
|
var xhr = new FP.core.loadFile(path);
|
|
|
|
xhr.succeeded = function(file) {
|
|
if(callback) callback(file);
|
|
}
|
|
|
|
xhr.failed = function(err){
|
|
self.postMessage("failed: " +err);
|
|
};
|
|
|
|
xhr.start();
|
|
}
|
|
|
|
self.save = function(path, file) {
|
|
var entry = {"path" : path, "file": file},
|
|
request;
|
|
self.postMessage("failed: before");
|
|
var transaction = _db.transaction(["files"], "readwrite");
|
|
var store = transaction.objectStore("files");
|
|
request = store.put(entry);
|
|
self.postMessage("failed: after");
|
|
request.onerror = function(event) {
|
|
self.postMessage("failed: " + event.target.errorCode);
|
|
};
|
|
|
|
request.onsuccess = function(event) {
|
|
//-- Do nothing for now
|
|
};
|
|
}
|
|
|
|
self.opendb();
|
|
/*
|
|
self.opendb(function(db){
|
|
var transaction = db.transaction(["files"], "readwrite")//.objectStore("files");
|
|
|
|
transaction.oncomplete = function(event) {
|
|
self.postMessage("All done!");
|
|
};
|
|
|
|
transaction.onerror = function(event) {
|
|
self.postMessage("Error in Transaction")
|
|
};
|
|
|
|
_objectStore = transaction.objectStore("files");
|
|
});
|
|
*/
|