IndexedDB的判断更新数据和新增数据

发布于 2022-09-11 16:57:46 字数 827 浏览 27 评论 0

业务场景:
AJAX发送请求后返回数据res,返回的数据为动态(可能很多,可能很少。可能有些需要更新有些需要新增)
我想实现一个判断ID是否重复 重复就更新 不重复就新增 但是由于IndexedDB .put(更新) .add(新增)是分开执行的没有那么强大和智能而且我AJAX的数据可能一个JSON里面有的需要新增有的需要更新。所以有些不知所措希望大神能给一些指点

success: function(res) {
    // 开启本地数据库
    initDb();
    var users = JSON.parse(res);
    var tx = db.transaction("users", READ_WRITE);
    var store = tx.objectStore("users");
    var i = 0, len = users.length;
    while(i < len){
     var req= store.add(users[i++]);
     req.onsuccess = function (evt) {
     console.debug("addData success:", evt.target.result);
     };
     req.onerror = function (evt) {
         //一开始想在这里写上更新的方法 但是好像新增不成功就抛异常了
         //而且新增数据里只要有一条ID重复就会抛异常,不太懂应该怎么实现希望能有大神指点一下
         //最好能简单点。因为甲方变态要求页面JS已经写了很臃肿了(┬_┬)
     };
    };
   };                                

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

土豪 2022-09-18 16:57:46

自问自答吧哎。看来IndexedDB太小众化了。没什么人用。
算是半解决 直接用.put方法就好 因为偶然看见文档上写了。put方法没有的话就自增了。所以直接put就好

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文