qooxdoo 0.6rc1 发布了

    昨天刚从sourceforge的svn上下载了最新的代码,感受了一下0.6,也和qooxdoo的邮件列表上的其他人一样在想0.6什么时候发布,刚才上网一看0.6rc1发布了。不过就算不发布我也打算开始用了,因为很多先行者说0.6已经很稳定了。
    1、如果使用过先前的版本一定都知道,0.6最大的变化应该就是完全基于namspaces。
    2、对我来说一个非常希望拥有的是Table(这个Table类似于其他UI库的DataGrid),另外还新增了一个常用部件:日历(我以前使用的是dynarch的)。和ListView相比,Table不但有了X轴的滚动条,而且可以更方便的,直接对单元格进行编辑,还可以隔行使用不同颜色,可以调换列之间的位置,可以只选择几列显示。和以前的ListView相比进步不少,但和其他“专业”的Grid相比有些功能还比较弱,但对于我新项目的需求已经足够了。
    3、新增RPC模块,并且提供了PHP和Java的服务器端实现。我原来使用的json-rpc-java,抽时间要看看他的实现方法。我看了一下例子,也是基于JSON-RPC的。
    4、另外0.6的doc现在采用了更类似java的样子,用起来更方便了。内容也比以往更丰富。
    5、再就是体积的变化了,原来700来K,现在900多K。所以我仍然是把它作为开发管理系统的UI库。做互联网应用还是采用其他小一些的库。

我打算新的项目将基于0.6进行界面开发,下面贴几个截图,以飨读者。
api

table

window

window2

posted on 2006-08-19 21:24 一农 阅读(2243) 评论(23)  编辑  收藏

评论

# re: qooxdoo 0.6rc1 发布了 2006-08-23 09:03 sun123

to 一农
你现在开始用0.6作了吗?我看了一下demo,好像觉得比先前的版本慢了,特别是at-a-glance,好慢阿。
还有那个api打开也很慢。
table 确实做的不错,还没来得及细细琢磨。
还有你知道国内还有哪些网页讨论qx的吗?  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-08-23 09:18 一农

@sun123
速度上我没太注意,那个api打开慢,我想主要是内容多。
我现在新的项目打算使用0.6来做,并且已经把原来使用0.5x的一个页面改为了0.6的库,除了类名上的转换,其他有少许改动。还有些细节问题,现在还没来得及细看。
文中我说其api的doc好用,现在看也不全是,原来的时候,看一个类,在一个页面上可以同时看到该类本身和其父类的所有属性和方法,但现在要一层层的点,感觉反倒不如之前了。:)

我还没找到国内讨论qx的地方,本来想给Ajax中国论坛联系一下,开个qx的版,但看了一下Ajax中国经营的不太理想。  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-08-23 09:19 一农

不过你可以到国外的
http://www.nabble.com/Javascript-f15545.html
做些相关的了解  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-15 01:00 一农

有不少同仁询问关于qooxdoo和json-rpc-java的相关问题,这里做些说明:

1、qooxdoo的官方网站是qooxdoo.org,上面有demo,很多,你可以下载后在本机查看。对于ajax,dojo,yui也要多关注,dojo受支持程度更好些。最近我在使用jquery,感觉非常好,推荐了解。
2、qooxdoo和json-rpc-java没什么必然的联系,json-rpc-java就是一种web rpc,如果你只做java的话,建议看看dwr就可以了。另外qooxdoo本身也有rpc模块,是基于json-rpc的。  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-26 10:00 oasis

我自己的一个试验性质的网站,用qooxdoo 0.6做的前台UI。
http://www.aurora-x.net
把我以前用传统B/S做的一些冬冬,慢慢的转换到这个框架下,边摸索边使用,呵呵。

IE下渲染速度慢以及消耗资源大,这是IE6实现的问题,在IE7的测试版中,这种情况已得到明显改善,和FireFox 1.5差不多了。

qooxdoo在0.6引入了namespace这一点非常重要,是将来能得到成熟应用的关键。

它的custom build能力很好玩,不过居然使用make来做build,估计这年头做web开发的人没有几个有在*nix下写C程序的经历吧? :-D

完整的qx.js虽然有1M大,用gzip压缩过后有150K,这样后台用Apache + mod_deflate还算可以。

我写的程序里后端用Java + org.json包构建所需的JSON对象,因为一般我的程序也会提供Web Service接口,所以还会采用Java + AXIOM来生成DOM对象。所以我在这方面就不用什么框架了,没有什么特别的方便性,还不如自己这样来的灵活。

  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-26 15:18 originxu

用NativeWindow,每开一页会有8-10M内存递增,但是用Window,显示开发起来太困难,困难得有些不敢想象,特别是开发比较大的系统,关键是它怎么实现国际化呢?  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-26 15:20 originxu

如果页面全部用js生成的话,特别是单独的一个js文件,怎么能实现国际化呢?一些标签,如窗口标题,  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-26 15:28 originxu

如果生成界面时,再向后台请求标签,那不现实,引入单独的js,也不能实现国际化,放入jsp倒是可以利用struts,但不可能所有的js放入一个jsp文件啊,而且这样和json-rpc背得有些远了,难道生成界面用jsp,具体操作用json-rpc?在java方法里动态输出js?那有多麻烦啊,好像并没有一个比较好的办法解决这个问题啊,再另外引入一个中间层,比如表现层?  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-27 09:22 oasis

@originxu
1、NativeWindow吃内存是IE6的问题,你看一下我之前的回复已有说明

2、国际化有什么难的?每个语言对应一个js,输出html的时候根据情况包含不同语言的js即可。  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-27 09:51 originxu

@oasis
1.选择的问题,如果NativeWindow在内存的消耗上没有问题的话(通过使用IE7或FireFox1.5),似乎使用NativeWindow是更好的选择,相比qx.ui.window.Window来说,使用qx.ui.window.Window似乎更像用c去写操作系统,对开发企业级系统来说,在没有好的IDE支持下,应该会比较少人愿意去写百万级以上的js代码.而且还是和qx一样,包含几百个js文件

2.国际化问题,每个语言包含一个js文件,这是jscanlender的做法,如果资源文件太大,可能多达几M(对大型系统来说,这应该有可能吧),会否消耗太多?

3.在目前情况下,qx是否适合开发大型系统,比如3pl系统?在处理大数据量上,qx是否经得起考验?  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-27 10:03 originxu

@oasis
我刚进了下你的网站,初次打开还是挺慢的,如果再加上自己写的可能也是上百万的js代码,几百个js代码,那初次加载速度可能更慢了,如果用qx.ui.window.Window来模拟页面的话,那所有的js文件,在初次加载的时候,也是全部加载的,如果再加上国际化的资源文件,那速度就更慢了,这是一个问题啊  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-27 10:06 originxu

@oasis
在多窗口的情况下,并非buttonview实现,  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-27 11:28 oasis

@originxu

1、关于语言的那个问题,我想我现在明白你的意思了,你是说当把一个语言下的所有资源写在一个文件里时,加载的时候不太划算,因为以后每个页面只使用了其中很小的一部分。这个问题我觉得挺难回答,显然这样做是一种很简明的实现方式,维护起来也轻松。如果要分次输出的话,就得针对每个页面维护一组语言资源了。另外我觉得几兆也不算太大,用Apache+mod_deflate压缩的话,通常对于这些文本都能获得10:1的压缩比的。

2、对于加载速度我没有仔细的研究过,下载js代码的等待,代码库的载入、对象的初始化,这些环节我不太清楚那个是其中的bottle neck。也可能都是,在不同的条件下会有变化。

3、我觉得用qx.ui.window.Window来模拟所有的页面,不是个好主意,基本上我个人觉得它只起到一个对话框的功能,或者说它命名为Dialog更合适一些。真正的窗口还是浏览器客户区这一块,大部分的文章还是应该在这里面做。

4、qooxdoo处理大数据量?你的意思是把大量的数据挪到Browser处来做?反正像Table,List这些widget经测试存储上万条记录也不会有什么性能上的影响。不过我认为还是应该在设计的时候在B/S两者之间取得一个平衡,无论走哪个极端都不太好,呵呵。  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-27 13:50 originxu

@oasis
1.关于多语言,分次载入,我的想法是能不能像ImagePreloader那样,通过RPC提前载入一些本页面相关的语言文本,比如说MessageResourcePreloader之类,不用静态的js文件保存资源文件

2.如果用NativeWindow,每个页面包含qx.js,每打开一个页面,qx.js就要重新载入,初始化一次(不太清楚浏览器具体机制,不知是不是这样),然后在新的窗口里,也要定义main之类的函数,也就是每一个页面的执行流程都一样

3.用qx.ui.window.Window来模拟所有的页面,确实不太好,开发太困难了,也不好维护

4.Apache+mod_deflate倒没怎么用,一般用tomcat,weblogic,这些好像并不能压缩吧,

5.关于大数据量,一般不会一次性加载上万条记录吧?一般应该都会分页

6.另,不知道在哪里能够改图片文件的加载路径,默认是../../icon之类,  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-29 10:45 originxu

原来在qx.manager.object.AliasManager里,  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-29 14:38 一农

1、我感觉主要的停顿是发生在代码库的载入、对象的初始化,所以使用NativeWindow总有些不太好,但是也如大家讨论,直接使用qx模拟的window确实也有诸多问题,我自己也使用过通过xhr载入js文件的方法,来实现类似多文档的方式,但效果不理想。通过封装可以解决变量命名的问题,但我有些页面需要直接写一些HTML来实现,这些HTML里的id就要保证不重名。再就是调试的问题。虽然上述问题我也都找到了解决的方法,但仍感觉不放心,所以我现在还是决定使用NativeWindow的方式,这个难度较低,容易掌握,主要问题就是载入库时的速度问题,我想应该想办法压缩库,每个页面载入的库,可以做些裁减。这个解决方法或许更稳妥些。
2、国际化,用静态js的话是比较麻烦,但既然大家抉择使用struts+jsp可以解决国际化问题,那我抉择可以把js当jsp来处理嘛。随便说说,我现在也没考虑这个事情。
3、百万级js代码,我现在做的项目因为是基于qooxdoo的,所以多数页面都是全js的,当然限于项目的规模没有百万级js。但使用xhr载入js文件的话,就不存在一次性载入上百js文件的问题了。
  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-29 15:25 一农

我发现dojo的样式是通过元素的class定义的,所以如果要修改样式,直接在当前页面里重新定义这些class就可以了.
而qx的是通过元素的style来定义的,需要修改theme的相关配置,感觉和dojo相比不甚方便.
不知这个理解是否正确.  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-30 09:12 oasis

@一农

qooxdoo的设计者故意不让用户去直接操纵HTML/CSS的,他认为尽管某些时候这样做可能会带来一些方便,但是有明显的缺陷:
1、用户必须成为HTML/CSS的专家,而当涉及到跨浏览器的一致性时,这个难度就更大了。
2、局限于CSS的能力,按照作者的说法,CSS的设计初衷是修饰网页而不是高级GUI界面,有不少方面是用CSS无法做到的。
3、不能支持复杂的布局

因此,虽然qooxdoo内部也使用CSS来渲染DOM,但是并不要求客户程序员去直接使用它。作者对qx的定位是高级的框架,不仅仅是几个widget那么简单。
  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-09-30 09:19 oasis

对于qx模拟的window,因为我只将它当作对话框来使用,所以我目前感到唯一不便的是,对话框中的widget的值如何与cookie或是服务端beans中的值保持一致。这个应该可以被大大的简化。
  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-10-09 09:33 originxu

1.还是没有完全明白一农具体的做法,感觉你是各种方式都在用,但最终你用的哪种呢?不知道能否详细描述下,也给我等末进取取经?因为某种程度上,我感觉qooxdoo用哪种方式都有一些问题没法解决,不是性能问题,就是开发困难,总之并没有一个比较成熟的,能应付开发一个完整系统的解决方案,我说的是比较大型的系统,不是一个小Demo
2.使用xhr载入js文件,后台怎么实现?json远程调用bean方法?还是?
3.是否完全使用json-rpc实现,没有用到jsp,servlet(除了json实现必用到的)?
4.如果完全采用json-rpc,权限怎么实现?
5.国际化问题,你的系统中好像并没有实现国际化?  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-10-10 15:57 一农

@originxu
1、我现在做的一个正式项目就是使用的qx,已经接近尾声。ui使用的qx,没有采用什么特殊的东西。我就采用最直接的新开窗口,虽然消耗资源较多,但可以忍受。另外dojo蛮好的,可以考虑一下。
2、使用xhr载入js,和后台没什么关系,就是为了实现根据需要载入js。 对,json就是调用后台注册给spring的bean的方法,不过json-rpc-java本身没有直接的实现方法。所以对于rpc,我建议你了解dwr。
3、json-rpc是基于xhr实现的,是为了模拟rpc的功能。我现在这个项目多数的操作界面,使用了qx的界面,都是使用json-rpc来与后台进行数据交换。但有些功能是直接使用的常用的struts的方法。
4、这个也没什么特别的地方。还和以前类似。因为还是请求响应。还是上面说的,因为我用的json-rpc-java已经不是原来的json-rpc-java了。你说提出的json-rpc的问题,我的回答估计对你也没多少用处。还是看dwr就可以了 :-)
5、对我现在做的系统里并没有考虑国际化的问题。如果我要做这个工作的话,我还真没想好方法呢。如果使用struts+jsp的方式来实现现在的系统,有些标准的方法,但我总觉着不方便开发。现在拍脑袋想一下,如果是js文件里需要国际化的话,我会将需要国际化的文字加上一些特殊的标志,然后传递到前台时,像jsp一样进行过滤。  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-10-16 23:13 weide

这个东西Dotnet下能够使用码?  回复  更多评论   

# re: qooxdoo 0.6rc1 发布了 2006-10-16 23:25 一农

这个只是js库,可以在.net下使用。
只是其中的rpc现在他只提供了java和php的,不过当然你可以使用.net下的rpc。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

公告

南京 java辅导班 约等于免费 详见yuqiaotech.com

导航

<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

常用链接

留言簿(10)

随笔档案

文章分类

文章档案

相册

搜索

最新评论

阅读排行榜

评论排行榜