4

我想做 Sencha Touch 2 应用程序,我需要使用客户端数据存储。那么,是否有办法使用 SQLite 数据库或相同的替代方法?如果用户无法访问互联网并且用户能够对数据进行 CRUD,我的应用程序需要工作。当设备建立互联网连接时,应用程序应将客户端数据库(SQLite)与服务器端数据库同步。

4

2 回答 2

2

我认为有两个机会。

首先是使用 WebSQL。它就像一个 SQL 数据库。但它已被弃用,取而代之的是 indexedDb(目前不适用于移动浏览器)。

有一个用于 WebSQL 和 Sencha Touch 2 的插件。https://github.com/grgur/Ext.data.proxy.WebSQL

第二个机会是使用 LocalStorage。您可以使用商店和“本地存储”代理直接对您的数据进行 CRUD。但它不是 SQLite 数据库,但我认为你可以用它来解决你的问题。

Sencha 文档:http ://docs.sencha.com/touch/2-1/#!/api/Ext.data.proxy.LocalStorage

于 2013-01-22T12:41:29.487 回答
1

Sencha Touch (2.1) 的最新版本通过 Ext.data.proxy.Sql 类内置了对 Web SQL 的支持。

这为 Web SQL 提供了官方支持。但是,它几乎没有文档,使用起来非常痛苦。一个好的起点在这里:http ://druckit.wordpress.com/2012/11/16/using-the-sencha-touch-2-1-sql-proxy/

我自己一直在将它用于一个项目,并发现它在出现问题时不会提供错误。例如,我遇到了一个问题,我拼错了一个排序依据声明(这显然是必需的,但没有记录在案)并且它停止工作。没有显示错误。大约 5 小时后,我发现了这个问题,它又开始工作了。

这很痛苦,但它可以完成完整的数据库本地存储的工作。

于 2013-02-05T01:14:10.063 回答