Safari / Chrome在浏览器刷新时创建了重复的webSQL数据库

时间:2012-04-11 00:46:06

标签: html5

我正在使用HTML5,CSS 3和Javascript创建移动Web应用程序。目前我正在Google Chrome和Safari桌面浏览器中对此进行测试,因为我最终会将此应用程序发布到iOS和Android设备。

在测试期间,数据库操作按预期工作(这太棒了)但每次刷新网页时,最初创建的数据库都是重复的(在多次页面刷新后,数据库的数量增长到一个愚蠢的数字)我无法弄清楚为什么会这样。

我认为浏览器会检查数据库是否存在(如果不存在则创建它)或打开数据库(如果检查对数据库存在肯定)。以下代码用于创建数据库:

var Database = function(){
this.db     = false;
this.dbName     = 'Stores';
this.dbVersion  = '1.0';
this.display    = 'Stores';
this.dbSize     = 5000000;
this.resultSet      = [];
}


Database.prototype = {

initialiseDatabase : function(){
this.db = openDatabase(this.dbName, this.dbVersion, this.display, this.dbSize);
return this;
}
}

这个类方法(不是严格来说是JS中的一个类,但是因为缺少它所接受的术语)然后在前端视图中只使用以下代码调用一次:

db.initialiseDatabase();

就像我之前所说的那样,除了在Google Chrome和Safari中刷新页面时,代码工作正常。发生这种情况时,每次刷新页面都会复制已存在的数据库。

是否有人能够提供任何关于我可能做错的建议/指示,或者可以做些什么来防止这种情况发生?我查看了这篇文章:Duplicate SQLite database in webapp但我发现在Mac OS X 10.7上面提到的两种浏览器上都会发生这种情况。

提前感谢任何能够提醒我的人:)

0 个答案:

没有答案