2

我正在使用 asp.net MVC 开发一个 Web 应用程序。我需要能够根据用户的需求通过 HTML5 使整个应用程序脱机。

虽然我可以创建清单并使 CSS/JS/图像文件等文件脱机。我不确定如何使数据库连接脱机(我想像 SQLLite 之类的?)

我需要 IE 8+、Safari (IOS) 和 chrome (android) 支持此功能。

我不能只使用本地存储,因为在离线浏览应用程序时需要提供很多查找值。这意味着大量数据需要经过用户的批准才能离线存储。

有什么想法吗?

4

1 回答 1

1

对于 IE8+、Safari 和 Chrome 支持,您应该使用 SequelSphere: www.SequelSphere.com

SequelSphere 是唯一具有真正广泛的浏览器和平台支持的关系数据库产品。它还通过使用应用程序缓存清单“离线”工作,并将其数据存储在 IndexedDB 或 LocalStorage 中(根据可用性按顺序)。

至于 WebSQL (SQLLite),IE 和 Firefox 不支持:WebSQL Usage by Browser

关于 SequelSphere,创建表再简单不过了:

db.catalog.createTable({
    tableName: "EMPL",
    columns: [ "EMPL_ID", "NAME", "AGE", "DEPT_ID" ],
    primaryKey: [ "EMPL_ID" ],
    data: [
        [0,"Bob",32,0],
        [1,"John",37,2],
        [2,"Fred",28,1]
    ]
});

查询数据很简单:

var res = db.query("SELECT name, age, dept_id FROM empl WHERE Dept_ID = 2");

插入/更新/删除数据很容易:

db.insertRow("empl", [3, "Sue", 26, 2]);
db.updateRow("empl", [3, "Suzy", 26, 2]);
db.deleteRow("empl", [3, "Suzy", 26, 2]);

需要注意的一件事:由于这将在离线应用程序中使用,请确保将整个目录或每个表的“持久性范围”设置为“SCOPE_LOCAL”:

db.catalog.setPersistenceScope(db.SCOPE_LOCAL);
//  -or-
db.catalog.getTable("empl").setPersistenceScope(db.SCOPE_LOCAL);

如果您有任何问题,只需通过电子邮件发送 SequelSphere 支持。

为了完全透明,我是 SequelSphere 的一部分,它似乎很好地回答了你的问题...... ;)

于 2012-12-07T19:51:09.400 回答