我正在使用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上面提到的两种浏览器上都会发生这种情况。
提前感谢任何能够提醒我的人:)