一条搞不明白的js语句

  var store = store = db.transaction(storename,'readwrite').objectStore(storename),request

请问这条语句什么意思啊

或者说下面为啥可以防止添加数据

//添加数据,重复添加会报错

    var store = store = db.transaction(storename,'readwrite').objectStore(storename),request;
    for(var i = 0 ; i < data.length;i++){
        request = store.add(data[i]);
        request.onerror = function(){
            console.error('add添加数据库中已有该数据')
        };
        request.onsuccess = function(){
            console.log('add添加数据已存入数据库')
        };
    }
阅读 2.4k
3 个回答
     var store = store = db.transaction(storename,'readwrite').objectStore(storename),request;
相当于var store = store = db.transaction(storename,'readwrite').objectStore(storename);
var request;

问题没写清楚db是个什么对象
不过看描述和API我猜八成是IndexedDB

至于不能插入相同的数据,是因为你指定了KeyPath,KeyPath对应的字段是作为键的,有唯一性
跟列出的语句没有关系
如果需要插入相同的数据,应该在createObjectStore的时候使用{autoIncrement:true},并且不指定KeyPath
具体可参考:https://developer.mozilla.org...

这个就是indexedDB啊。键值对型的存储,你重复存了主键就会报错呗,
自己戳链接MDN

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题