如何使用YDN-DB在单个事务中将数据保存到websql

时间:2014-07-31 10:58:55

标签: web-sql ydn-db

我有一个应用程序,我可以手动选择离线。当用户这样做时,我发出ajax请求以获取数据并将其保存在websql db中。我检索到的数据包含一组模型,我想在单个事务中单独编写。 (每个模型都有自己的id,我希望将其用作关键路径,以便以后更容易查询)

我可以使用的最接近的方法是add(store_name, values),但我不确切知道如何使用它。没有例子,我无法弄清楚。我也不确定这种方法正是我需要做的。这里有任何反馈?你能举一个简短的例子来说明我是如何做到这一点的吗?

问候,弗罗林

2 个答案:

答案 0 :(得分:1)

对不起,我找到了答案。我只需要尝试一下。这是来自文档"注意通过在一个事务中使用记录数组来存储多个记录。":

var data = [{id: 'a', message: 'a record'}, {id: 'b', message: 'b record'}];
db.put('store2', data).always(function(x) {
    console.log(x);
});

答案 1 :(得分:0)

还有问题。我正在使用一种解决方法,当我强制机制为websql时,它在chrome中运行良好。但在android 4.1.2上效果不佳。

function insertRows(store, rows){

  // array of promises
  var insertPromises = [];

  // create deffered object
  var d = $.Deferred();

  // loop through each row
  map(rows, function(row){

    // update promises array
    insertPromises.push( db.put(store, row) );
  });

  // group promises
  Bluebird.all( insertPromises ).then(function(rows){

    // resolve promise
    d.resolve(null, rows);
  }, d.reject);

  // return a promise
  return d.promise();
}

它似乎也没有拒绝。所以我认为它无声地失败了?有没有人有一个简单的例子,说明如何使用YDN-DB在单个事务中插入集合?