次期GearsにはHTML5互換のDatabase APIが入ります

こちらの記事が人気みたいなので。

この方が既にご存知なのかは知らないけど、 Gears には Database 2 API というのが追加されることになっていて、こちらは HTML5 の Storage API 互換を目指している。

var dbman = goolge.gears.factory.create('beta.databasemanager');
var db = dbman.open('pages', '0.0.1.0',
  'Collection of crawled pages', 3000000);

function renderPageRow(row) {
  // insert page row into a table
}

function reportError(source, message) {
  // report an error
}

function renderPages() {
  db.transaction(function(tx) {
    tx.executeSql('CREATE TABLE IF NOT EXISTS Pages(title TEXT, lastUpdated INTEGER)', 
      []);
    tx.executeSql('SELECT * FROM Pages', [], function(rs) {
      for(var i = 0; i < rs.rows.length; i++) {
        renderPageRow(rs.rows.item(i));
      }
    })
  })  
}

function insertPage(text, lastUpdated) {
  db.transaction(function(tx) {
    tx.executeSql('INSERT INTO Pages VALUES(?, ?)', [ text, lastUpdated ],
      function() {
        // no result returned, stub success callback
      },
      function(tx, error) {
        reportError('sql', error.message);
      });
  });
}

ってな感じで。


そもそもなんで Gears の Database APIHTML5 のものと互換性が無いかというと、HTML5 の仕様草稿より先に Gears が存在したからという理由で、Gears が標準を疎かにしているわけではない。

Gears は HTML5 という仕様の実装の一つであり、常に HTML5 を包括するものであることを目指している。

などということがこのへんに書いてある。