2

我正在使用 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 上的两个浏览器上。

提前感谢任何可以给我提示的人:)

4

0 回答 0