PhoneGap支持SQL吗?

34 views
Skip to first unread message

Kai Yang

unread,
Oct 26, 2011, 6:54:02 PM10/26/11
to Julia: HTML5 Mobile Dev Framework
问:PhoneGap支持SQL吗?

答:
通过WebStorage支持。也就是说PhoneGap使用的是Browser/WebKit的内置数据库支持。
这样的缺点主要是:
1 无法控制数据库文件的存储位置(a.k.a文件属于WebKit保管,用户App无法访问到实际的文件,只能在WebKit里面通过JS访
问)
2 App的NativePlugin无法访问数据库
3 不同版本的WebKit对WebStorage的支持都不同
4 WebStorage标准由于微软的介入肯定 会发生改变

除了WebStorage,PhoneGap在很多地方都有类似的问题。它只是看起来支持很多功能,但是如果想制作媲美native的App,它几乎所
有功能都变得无法使用。

另外,针对Titanium,
1 Titanium的设计思路是用JS替代本机编程语言(Android上面就是Java),
包括一些需要性能的地方,开发者也只能使用Titanium规定好的JS接口。

Julia在需要性能的地方使用Native代码,只在应用逻辑、界面组织上使用HTML5/CSS3/JS。
而这些地方是应用开放里面通常代码量最大的地方。
也就是在不损失性能的情况下,Julia可以大大减低编写的代码行数。

2 Titanium自己又设计了一套表达界面的方法,也就是开发者不学各个平台正经的API,反而要学Titanium的。
这就造成开发者为了使用Titanium还要学习大量的新东西

Julia在界面设计(View)、应用逻辑(Controller)、和网络访问(Model)方面取得很好平衡。
对于程序员来说,HMTL5/CSS3/JS本身就是应该学习的必备知识(零学习成本),对于Designer来说,
HTML5/CSS3不成问题,只有JS是需要学习的部分,JS本身的难度就比Titanium一大堆东西要容易很多。

3 Titanium开发工具需要付费。开发商业软件需要付费。

以上供参考。

elephi

unread,
Oct 31, 2011, 12:23:46 AM10/31/11
to Julia: HTML5 Mobile Dev Framework
好像还是没说清楚 Julia 在SQL上的支持程度?是不是和PhoneGap有同样的问题?

RenYi

unread,
Oct 31, 2011, 7:43:26 AM10/31/11
to juliap...@googlegroups.com
Julia在SQL上的能力
1 支持多个表和数据库,每个数据库制定不同的本机存储位置
例如,建立一个KeyValue的表SQL语句是:
create table if not exists MyKeyValue (
k text primary key,
v text)
用Julia在config.json里面
"MyApp.db" : {
MyKeyValue: "k text primary key, v text",
...
}
...

2 并发访问多个表、多个数据库
jsi.sqlSelect("select k, v from MyKeyValue where k = ?", [keyVar],
function(rows){
for(var i=0; i < rows.length; i++) {...}
});
上面的select调用可以和其他Select、Insert、Delete、Update同时执行。
注:SQLite不支持同一张表同时进行数据修改操作

3 允许Native代码访问数据库
Julia对App数据库的支持通过本机代码实现,所以在开发Julia插件的时候插件
对数据库的访问不会遇到问题。另外,Julia封装了本机代码并发访问数据库所需要编写
的重复代码(不必编写使用Thread或AsyncTask之类的重复代码)
startNativeSQL("MyApp.db", new SQL.NativeExecutor() {
public long exec(SQLiteDatabase db) {
Cursor c = db.rawQuery("select
acc_key, acc_secret from conf", null);
...
}
...
}


2011/10/31 elephi <eleph...@gmail.com>:

> --
> You received this message because you are subscribed to the Google
> Groups "Julia: HTML5 Mobile Dev Framework" group.
> To post to this group, send email to juliap...@googlegroups.com
>

Ldsenow Luo

unread,
Oct 31, 2011, 7:49:02 AM10/31/11
to juliap...@googlegroups.com
请问SQL数据库容量的限制是多少?

2011/10/31 RenYi <re...@miankong.cc>

RenYi

unread,
Oct 31, 2011, 7:51:50 AM10/31/11
to juliap...@googlegroups.com
和本机代码一样,没有限制。

2011/10/31 Ldsenow Luo <lds...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages