javascript - Delete 方法不适用于 Indexed DB HTML5 ...它返回成功但未删除记录

标签 javascript html google-chrome indexeddb

我在使用 Desktop Chrome 的 HTML5 索引数据库中遇到的另一个问题是我无法从对象存储中删除记录。 onsuccess 事件被触发但记录仍然存在......我的 ID 是一个时间戳只是因为我想更快地实现一个工作应用程序。我对它进行了硬编码,但它仍然不起作用。真的很奇怪,因为onsuccess事件被触发了...

“执行它”的代码部分如下:

尝试 {

        if (localDatabase != null && localDatabase.db != null) 
        {
            var store = localDatabase.db.transaction("patients", "readwrite").objectStore("patients");
            var request = store.delete("1384882073632");

            request.onsuccess = function(event) 
            {


                alert("Patient deleted from DB");
                update_patients_stored();

                aux1.value = "";
                aux2.value = "";
                aux3.value = "";
                aux4.value = "";

            };

            request.onerror = function(event) 
            {
                alert("Error deleting");
            };
        }
    }
    catch(e)
    {
        alert(e);
    }

提前致谢!

最佳答案

我发现了一个类似的问题。非删除行为但触发了 onsuccess 事件。尽管w3 IDBObjectStore.delete specification状态关键参数可以是任何类型,我解决了它强制参数转换为数字:

//My version
//I use default autoIncrement for keys
var objectStore = db.createObjectStore(objStoreName,{autoIncrement:true});
//appears to need a number for the key (but retrieved from HTML as string
var request = db.transaction(objStoreName,'readwrite')
                    .objectStore(objStoreName)
                    .delete(Number(parent.id));
    request.onsuccess = function(e) {
        console.log("element deleted"); //sadly this always run :-(
    }

所以你的第四行应该是:

var request = store.delete(1384882073632); //integer id
//rather than (WRONG):
//var request = store.delete("1384882073632"); //WRONG! string id

试穿:

Chromium -- Manjaro Linux 上的版本 50.0.2661.94(64 位)

没有在其他环境或浏览器上测试过,但我猜这是你的问题。

关于javascript - Delete 方法不适用于 Indexed DB HTML5 ...它返回成功但未删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078724/

相关文章:

html - IE 11 忽略字体大小

mysql - 如何创建通知 chrome 扩展?

css - 用于输入元素的 webkit htm5 css 重置

javascript - 检索使用 ajax 和回调函数读取的 JSON 数据

javascript - 文本不随机刷新的问题

html - 屏幕尺寸覆盖其他的 :S

html - 运行 AngularJS ES6 时出错

javascript - 调整 Canvas 大小的后果

javascript - 从 JavaScript 中的 URL 中删除查询参数

javascript - 为什么 `enable-javascript-harmony` 会阻止 Web Worker 中的 Stack Overflow?