HTML5数据库验证存在表?
有没有办法验证表格是否存在于HTML5本地数据库的数据库中?HTML5数据库验证存在表?
我需要创建9个表,并且这个方法会在文档准备就绪时运行。如果每次页面启动,它也调用相同的方法,它会不会浪费内存?我将它用于移动设备(iPhone)。
这是代码:
try{
if(!window.openDatabase){
alert('DB not supported.');
}else{
var shortName = 'abc';
var version = '1.0';
var displayName = 'ABC';
var maxSize = 3145728;
var tableName = ['business', 'politic', 'firstread', 'commentary','features', 'insiderasia', 'management', 'media'];
db = openDatabase(shortName, version, displayName, maxSize);
$.each(tableName, function(theCount, value){
db.transaction(
function(transaction){
transaction.executeSql('CREATE TABLE IF NOT EXISTS '+ value +' (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, link TEXT NOT NULL, title TEXT NOT NULL, author TEXT NOT NULL, pubdate TEXT NOT NULL, imgLink TEXT NULL, desc TEXT NOT NULL, day TEXT NOT NULL);');
});
});
}
}catch(e){
if(e == INVALID_STATE_ERR){
console.log('invalid database version.');
}else{
console.log('unknown error ' + e + '.');
}
return;
}
对于你需要这个吗?如果你担心,你可以重新创建已经存在于数据库中的表,需要用这个SQL查询创建表:
CREATE TABLE IF NOT EXISTS table_name
我已经使用了'CREATE TABLE IF NOT EXISTS',但是我需要创建9个表格,并且这个方法会在文档准备就绪时运行。如果每次页面启动,它也调用相同的方法,它会不会浪费内存?我将它用于移动设备(iPhone)。 – arkchong 2010-12-15 09:39:06
这是很好的文章可以帮助你 - http://blog.maxaller.name/2010/03/html5-web-sql-database-intro-to-versioning-and-migrations/ 或者你可以将标志存储在localStorage之后你在做任何事情之前先创建你所有的表格和文档,然后检查这个标志,但不建议这样做,因为用户可以清除localStorage但是保存数据库。 – 2010-12-15 10:13:00
我以为使用localStorage是一个好主意,但就你所说,用户可能会清除localStorage。 如果我只在文档上创建单个表格,该怎么办?其他表只会在用户转到其他“页面”时创建?创建9个表格会更好吗? – arkchong 2010-12-15 10:31:45
你的意思是你拥有对数据库的字段里面标记至极要请检查是否它包含一个表或不是? – yoda 2010-12-15 06:57:01
字段内的什么意思标记? – arkchong 2010-12-15 09:39:49