function prepareDatabase(ready, error) {  return openDatabase('documents', '1.0', 'Offline document storage', 5*1024*1024, function (db) {
      db.changeVersion('', '1.0', function (t) {
       t.executeSql('CREATE TABLE docids (id, name)');      
    }, error);
  });
  
}function showDocCount(db, span) {
  
  db.readTransaction(function (t) {
    t.executeSql('SELECT COUNT(*) AS c FROM docids', [], function (t, r) {
      span.textContent = r.rows[0].c;
    }, function (t, e) {
      // couldn't read database
      span.textContent = '(unknown: ' + e.message + ')';
    });
  });
}prepareDatabase(function(db) {
  // got database
 // alert('text');
  var span = document.getElementById('doc-count');
  showDocCount(db, span);
  
}, function (e) {
  // error getting database
  alert(e.message);
});

解决方案 »

  1.   

    这段代码很掉牛x,功能其实很简单,就是操作HTML5 的web sql database。但最关键的问题在最后一个函数prepareDatabase,这个东东是怎么执行的,执行顺序是怎样。希望有高人指点一下。
      

  2.   

    你代码没给全吧,传入的ready没用到?
    function prepareDatabase(ready, error) {  return openDatabase('documents', '1.0', 'Offline document storage', 5*1024*1024, function (db) {
          db.changeVersion('', '1.0', function (t) {
           t.executeSql('CREATE TABLE docids (id, name)');      
        }, error);
      });
      
    }
      

  3.   

    自己看吧,这个原先也没用过。。
    http://developer.51cto.com/art/201003/185970.htm
      

  4.   

     html5我也是在学习当中,web sql database已经被html5工作组遗弃了,但是一些浏览器还是能用的,比如opera和chrome。现在我主要在做一些实验,然后再确定用html5做什么。