2007-06-25

Ext(www.extjs.com)使用感受

关键字: Ext 扩展
知道Ext是从Flex粉丝的口水大战,看了它的jsDoc,感觉似曾相识,
对象重载、事件侦听、怎么看都象C/S的组件sdk。
再粗略浏览了examples,呵呵,实用而且酷!
我说洪哥,咱们动手罢!
****实战****
用了两个月的时间,完成了以下工作:
1.Ext的Grid采用json作为默认支持的数据格式,而我的数据格式是传输机制是基于dwr的,
  不过Ext良好的分层设计允许编写自己的数据加载。
  按照此机制编写了自己的数据加载类:
  Ext.extend(Bat.UI.Ext.ObjReader, Ext.data.DataReader
  Ext.extend(Bat.UI.Ext.Proxy, Ext.data.DataProxy,
  在此基础上实现了grid组件与我自定义的数据格式的结合。
 
2.扩展Ext.form.TriggerField,实现了几个自己需要的form组件
  AttachField:多附件
  功能:支持带进度显示的本地上传、附件的浏览、删除。
  TreeField:树
  功能:从xml加载生成树,支持节点的增加、删除、拖拽、重命名、属性编辑
  FileField:远程文件操作
  功能:浏览远程文件目录、支持文件上传、选择、打开、移动、重命名

此过程中、感觉Ext的重载和事件侦听机制还是比较好用的,基本上我能想到的功能都顺利实现了。
也发现一些小bug,主要是特殊应用下在ie下出现,Ext论坛上也有许多网友提交了bug,大都是在ie下出现。
看来Ext的开发团队应当是主要以ff为测试环境的。
Ext的论坛比较活跃,提交的bug大都能得到及时响应。

****编辑器****
初期我使用jsEclipse,后来发现了更适合Ext开发的Spket,是我目前所见过的js editor中最强的。
http://www.spket.com/js.html

****调试****
Ext自带了debug窗口,可以实时监视Dom文档树和调试信息,我还是更习惯ff下的venkman
 
****应用**** 
Ext全部代码的压缩版本ext-all.js,目前为469KB
比较适合部署在局域网上的B/S应用,不过其官方网站也列举了一些www上的应用。
Ext对Dom进行了良好的封装,实现了对象重载和事件侦听,并在此基础上实现了一整套ui组件,
这些组件正是对html组件的增强(validate问题、IE的select问题、)和补充。
也是实现B/S应用频繁使用的,与用户自定义组件相结合,就可以形成一套可复用的ui组件。
是编写RIA的好工具。
  • 0ab15f70-0d70-4c53-856f-f0194130f941-thumb
  • 描述:
  • 大小: 78.3 KB
  • 3d959564-a476-4f1e-b367-1b9ac5b8799a-thumb
  • 描述:
  • 大小: 86.4 KB
评论
rihoonet 2007-12-06
stevenwang ,能不能具体的描述一下在Ext里MVC在Grid中的应用?
stevenwang 2007-12-04
支持楼主的总结。
grid基本就是照搬swing的grid。
我以前是搞swing开发的。
看着那个mvc模式太眼熟了。
这个架构跟swing借鉴了很多思想。
letoto 2007-12-04
在哪呢
chen4w 2007-11-09
ext加载时,由于js类库较大,所以刚加载页面时较慢,运行起来后没有问题
InnocentBoy 2007-10-31
据说ext的速度不是很好。
kaki 2007-10-30
不知道和数据库整合如何??
fangzhouxing 2007-10-28
引用
ext中from的提交要不要刷新网页?

当然不用了,否则要AJAX干什么?
zlq4863947 2007-10-27
大家好!我在 -JS-堂 JavaScript 开源社区 ajaxjs.com 看到了这篇帖子,认为很有价值,特推荐给大家。

Spket IDE, Ext开发人员的紫色匕首~
地址 http://jstang.5d6d.com/viewthread.php?tid=809&fromuid=1803

希望大家能喜欢
再问大侠们一个问题,ext中from的提交要不要刷新网页?
hopesoft 2007-10-05
spket试用了一下,确实不错:)
hezn 2007-09-30
怎么下载是图片
hezn 2007-09-30
sfsdf
chen4w 2007-09-18
zyf0808:
已经共享了第1个版本
stamen 2007-09-18
sp42 写道
EXT尤其GRID的内部机制参考了Swing.
详见jack博客中文版:
http://www.ajaxjs.com/yuicn/article.asp?id=20073838

访问不了,是不是给错了??
zyf0808 2007-09-17
AttachField:多附件
功能:支持带进度显示的本地上传、附件的浏览、删除。
TreeField:树
功能:从xml加载生成树,支持节点的增加、删除、拖拽、重命名、属性编辑
FileField:远程文件操作
功能:浏览远程文件目录、支持文件上传、选择、打开、移动、重命名
***************************************
估计大家对你这部分都很感兴趣,可否共享一下?赫赫
fangzhouxing 2007-07-14
引用
FireFox就报告“dwr is not defined”,程序无法继续运行。


这个问题已经解决,是后台程序没有及时释放数据库连接,造成不能继续服务前台。

现在我可以继续DWR+Extjs的愉快旅程了!
fangzhouxing 2007-07-14
一直很关注和欣赏Extjs。最近我也已经用一个月时间用Extjs实际做了一些工作,主要是移植原来基于Struts的Web应用到基于Struts+DWR+Extjs的新开发架构。

我现在使用Ext 1.1RC1, DWRProxy来自:
http://extjs.com/forum/showthread.php?t=5586

总的开发感受不错,但是昨天遇到了一个问题,让我开始怀疑新开发架构的技术成熟度是否还不够。

在附图所示的界面中,点击用户列表中的某个用户,就会自动显示出该用户所属的角色列表。大约点10下左右,就会出现不更新角色列表的现象,然后FireFox就报告“dwr is not defined”,程序无法继续运行。

我去掉更新角色列表的程序,一切正常。再测试单个网格的程序,也很正常。

更新角色列表的程序代码如下:
		
gridUser.on('rowclick', function(grid, rowIndex, e)  {
			rIndexUser = rowIndex;
            if (dsUser.getTotalCount()>0) {
                currentUserId = selModelUser.getSelections()[0].data.id;
				dsRole.load({arg:[currentUserId]});
			} else	{
				currentUserId = -1;
                dsRole.load({arg:[-1]});
			}
	        setUserToolbarStatus();
		});	


那位高人能帮兄弟一把?先谢了。
taelons 2007-07-04
spket对extjs的支持,好象不能实现全部代码辅助完成功能
sp42 2007-06-25
EXT尤其GRID的内部机制参考了Swing.
详见jack博客中文版:
http://www.ajaxjs.com/yuicn/article.asp?id=20073838
bluepower 2007-06-25
赞,不过还是对Spket IDE比较感兴趣~
chen4w
搜索本博客
最近加入圈子
存档
最新评论