Tag: indexeddb

跨浏览器HTML5存储库

我有一个要求,当互联网不可用时,应该在本地存储。 它应该以跨浏览器兼容的方式处理它。 现在我知道有很多选项可以在本地存储数据(indexedDB,WebSQL,localStorage)。 我真正想要的只是一个统一的API。 我不想检测和编写多个存储引擎的代码。 我真正关心的是给出一个密钥,并提供数据,它应该在浏览器会话/崩溃中持久存在。 经过大量的谷歌搜索,我实际遇到的唯一的图书馆是persisJS: http://pablotron.org/?cid=1557 但它大约有4年半的历史。 有没有更好或更可靠,更新的?

Ajax IndexedDB删除当前的Sucesfull上传

我昨天发布了类似的东西,但它有效,但只删除了数据中的最后一个对象。 我想要发生什么 这个ajax上传将处理大量数据,所以我使用的是indexeddb。 这也将用于手机。 所以我希望它一次上传一个项目,如果一个项目未能删除数据中的先前项目,那么他们就不需要再次上传所有内容。 我试过async = false,这正是我想要的但是这个冰柜浏览器。 当前代码试图注释掉任何可能令人困惑的位,目前这只会在完成后删除最后一项。 function uploadData(e) { //Get Database var transaction = db.transaction([“data”], “readonly”); var objectStore = transaction.objectStore(“data”); var cursor = objectStore.openCursor(); //Starts Looping cursor.onsuccess = function(e) { var res = e.target.result; if (res) { if (navigator.onLine) { $(‘.popup-heading’).text(‘Uploading…’); var passData = { client_id: res.value.client_id, parent_id: res.value.parent_id, storename: res.value.storename, image: […]

获取IndexedDB中添加记录的密钥

我在IndexedDB中有这个代码: var request = objectStore.add({ entryType: entryType, entryDate: t}); 现在我想知道刚添加的这条记录的关键。我该怎么做? 我找到了这篇文章 ,这段代码: var data = {“bookName” : “Name”, “price” : 100, “rating”:”good”}; var request = objectStore.add(data); request.onsuccess = function(event){ document.write(“Saved with id “, event.result) var key = event.result; }; 这对我不起作用 – 键显示为未定义。 我想我错过了一些基本的东西!

在indexedDB中打开多个数据库连接是不是很糟糕?

我现在一直在使用IndexedDB,我可以成功创建一个新数据库,创建一个商店,并在“需要升级时”添加一个值。 我不明白的是,数据库是否保持“开放”状态,还是必须在需要访问数据库中读/写信息的每个函数内重新打开它? 例如,这是我的代码(可以工作)来创建一个新数据库,并插入一条记录: $(document).ready(function() { var db; function initDB() { console.log(“opening db…”); var req = indexedDB.open(dbName, version); req.onsuccess = function(event) { db = this.result; console.log(“opening db is done”); } req.onerror = function(event) { console.log(“error opening db: “, event.target.errorCode); } req.onupgradeneeded = function(event) { db = event.target.result; var store = db.createObjectStore(“creds”, { autoincrement: true }); store.add({ […]