什么是html5 localstorage db范围?

时间:2011-08-04 11:23:59

标签: html5 local-storage

1. db的范围是什么?

2.当它被摧毁?

3.如何检查数据库是否存在?

var db = window.openDatabase("Database", "1.0", "MyApp", 900000);

db.transaction(populateDB, errorCB, successCB);
function populateDB(tx) {
     tx.executeSql('DROP TABLE IF EXISTS PRICE2');
     tx.executeSql('CREATE TABLE IF NOT EXISTS PRICE2 (id ,P2_ID,P2_1,P2_2,P2_3,P2_Title,P2_Type,P2_ToType,P2_Up,P2_UpType,PP2_PriceTo,PP2_PriceUp,image)');

     var theResults = vData.results;
      for(var i=1 ; i < theResults.length ; i++){
          tx.executeSql('INSERT INTO PRICE2 (id ,P2_ID,P2_1,P2_2,P2_3,P2_Title,P2_Type,P2_ToType,P2_Up,P2_UpType,PP2_PriceTo,PP2_PriceUp,image) VALUES (' + theResults[i].ID + ', "' + theResults[i].P2_ID + '", "' + theResults[i].P2_1 + '", "' + theResults[i].P2_2 +'", "' + theResults[i].P2_3 +'", "' + theResults[i].P2_Title +'", "' + theResults[i].P2_Type +'", "' + theResults[i].P2_ToType +'", "' + theResults[i].P2_Up +'", "' + theResults[i].P2_UpType +'", "' + theResults[i].PP2_PriceTo +'", "' + theResults[i].PP2_PriceUp +'", "' + theResults[i].image +'")');
      }
}

// Transaction error callback
//
function errorCB(tx, err) {
    alert("Error processing SQL: "+err);
}

1 个答案:

答案 0 :(得分:2)

我使用过websql。这是答案..

问 - db的范围是什么?

A - 我假设从'范围'你的意思是数据库可访问的位置。对于您的扩展,如果您在background.html中创建数据库,则只能在background.html中访问它。您可以使用其他技术从ext / app的其他页面访问您的数据库,例如message passing APIchrome.extension.getBackgroundPagerecomended)。

问:什么时候它被摧毁了?

A - 它将在app / ext uninstall / reinstall上销毁。注意:更新ext / app不会对db产生任何影响。

问 - 如何检查数据库是否存在?

A - 据我所知,没有必要'检查'。如果db不存在则调用window.openDatabase,它将创建它,如果它存在,它将跳过创建部分并将值添加到db var。

编辑:我也发现无法找到这些基本问题的答案令人沮丧。当Twitter / google groups / forums / html5rocks.com评论失败时,我最终向IRC的人询问...:我发现IRC是最后的,几乎总是一个成功的快速,现场答案的手段而没有在论坛网站等待答案:)