答:
通过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开发工具需要付费。开发商业软件需要付费。
以上供参考。
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
>
2011/10/31 Ldsenow Luo <lds...@gmail.com>: