2012-12-06 49 views
2

我正在開發一個使用asp.net MVC的Web應用程序。我需要通過HTML5根據用戶的需求使整個應用程序脫機。SQLLite作爲離線存儲的ASP.NET MVC應用程序

儘管我可以創建清單並讓CSS/JS /圖像文件等文件脫機。我不知道如何使數據庫連接脫機(像SQLLite我想?)

我需要在IE 8 +,Safari(IOS)和chrome(android)支持。

我不能只使用本地存儲,因爲在離線瀏覽應用程序時需要查看很多需要查看的值。這意味着大量的數據需要通過用戶批准進行離線存儲。

有什麼想法?

回答

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"); 

插入/更新/ delete一個數據是容易的:

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的一部分,它似乎回答你的問題非常好...;)

+0

哇,非常感謝!我會給它一個鏡頭 –