`
ppkosd
  • 浏览: 89781 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

谈一谈我对于目前国人对于EXTJS的错误看法

    博客分类:
  • ext
阅读更多
从现在EXTJS的普及程度来说,这个工具框架的应用程度已经可以与其同类产品DOJO一比高下了,但是,从国人应用方面来看,EXTJS对于很多人,包括一些正在使用的人也是相当的陌生.因而产生很多错误的理解

第一,认为EXTJS就是一个界面,读读数据,提交提交,就OK了.与很多语言下场一样,EXTJS一经推出,很多一些所谓"明眼"人士,纷纷借此,写书,做教程,收费,再收费,小赚了一笔之后,也就没有下文了,比如说,开源人,浪曦等,他们教程,在我看来,更象一个数据库编程,只不过,从原来的WinForm + Database , 变成Service + EXTJS.对于性能方面,所讲基少.大家知道,AJAX一经推出,其效能问题一直是所有从事AJAX开发人员的一块心病,但其实很简单,掌握一条即可,"尽可能减少服务器端资源的调用",好,这样的话,对于添加一条记录,然后,刷新一下列表做法,简直是对服务器端资源的滥用.因此,在数据交互方面,我认为AJAX的软肋,也是EXTJS的缺点,因此,在此点上开发,才是EXTJS开发的重点.

第二,认为EXTJS只能用于PHP,或者SSH,或者ASP.NET.为什么有这种认为,因为网上只介绍这些语言,我们的EXTJS使用大家认为最"垃圾"的ASP语言,同样实现SOA.这个呢,不能怪大家,仍然要怪那些"万恶"的收费教程,因为他们只是讲后台怎么写,前台怎么绑,至于EXTJS如何解析数据源,能够解析什么数据源这些就被"模糊"掉了.一个连数据交互原理都不清楚的人,是很难解决很多AJAX上的未见问题的.

第三,认为EXTJS就是一个界面改良,在项目中,我仍然用N张页面,在N张页面,部署EXTJS.这个我不用多讲,效率问题大家都看得出来,EXTJS是一个集成开发工具,注定他的开发包很大,一个500多K的JS文件,你究竟打算让它下载多少次?!应该说,EXTJS不仅是一个AJAX开发框架,也是一个富客户端开发平台,AJAX是可以部署到多个页面,而完整的EXTJS是不能这样的做的,但是,他却能和FLEX一样,在一张页面中,完成项目中所有事件,这时有人说,这样JS文件不是就更多吗?!是的,但是,我们有压缩打包工具,可以将其打包成一个JS文件,我们可以将其部署在网络上,也可以象RIA一样,安装机器上,使用AIR技术即可.如果你只想进行在Windows机器上,那就也不用麻烦使用AIR技术,直接改成后缀名变成HTA,你的程序就变成单机版了.

以上尽是一家之言,不管有没有不对的地方,我们已经在这些观点上进行了丰富的实战,事实证明,在一定范围内,是可用的,也是可行的.

原帖:http://www.dojochina.com/index.php?q=node/912
分享到:
评论
85 楼 dill 2009-03-28  
通过看大家的讨论,真的学到很多阿。
84 楼 leonelwong 2009-03-27  
tianzhou0374 写道
呵呵,写一点心得,从0.3开始写Ext.一直到2.0,写了一年多了.企业级应用.
一开始写的页面反应超慢,反复操作多次后ie竟占用300多m内存,当时差点废掉Ext.
后来写的多了,发现自已当初还是不会写,现在85%的页面在ADSL调试客户端上载入时间控制在900ms以内,内存泄露能躲过的尽量避免,客户从上午九点开始进行月末库间调货集中盘点(涉及四大模块几十个操作)一直到下午6点下班IE6内存只增加了17.1M.操作没有任何问题.
还有一点是关于iFRAME的,如果使用iframe,并涉及到大量的模块间调用与参数传递,教训是惨痛的.

坚持看源码,不从不买书籍
83 楼 tianzhou0374 2008-12-09  
呵呵,写一点心得,从0.3开始写Ext.一直到2.0,写了一年多了.企业级应用.
一开始写的页面反应超慢,反复操作多次后ie竟占用300多m内存,当时差点废掉Ext.
后来写的多了,发现自已当初还是不会写,现在85%的页面在ADSL调试客户端上载入时间控制在900ms以内,内存泄露能躲过的尽量避免,客户从上午九点开始进行月末库间调货集中盘点(涉及四大模块几十个操作)一直到下午6点下班IE6内存只增加了17.1M.操作没有任何问题.
还有一点是关于iFRAME的,如果使用iframe,并涉及到大量的模块间调用与参数传递,教训是惨痛的.
82 楼 alexgratonor 2008-12-04  
做很多子项目集成的时候iframe还是很有用的,尤其是某些不能不用的框架无法和其他框架一起工作之类的情况。

ext的效率不是问题,他基本的优化已经给我们做完了。dojo的效率是个大问题,他默认做的优化不多,而且build系统非常麻烦。ext最大的问题是封装过度,在很多情况下调试比较困难,有时简直无法追踪问题的来源。
81 楼 icewubin 2008-11-30  
top_erp 写道

 
  Ext不存在JS编程问题,其实通过XML配置+spring可以自动生成Ext的脚本。

那只是分工上的不存在而已,一个项目组中必然至少得有一个人来维护你所谓的能够自动生成Ext的框架,这个框架即使是类似于GWT的开源框架,依然是需要维护的。

这些维护工作量主要包括,框架本身的小bug,组件的扩展和用户的需求(框架提供的组件不能直接提供)。

也就是说,你所说的“Ext不存在JS编程问题”仅仅是在这个“框架”够用的前提下,一旦这个“框架”的功能不够用,或者bug数量比较多的话,那个维护的人自然而然就成为了瓶颈。

从整体成本上来考虑,如果那个维护的人是1-3个的话,既有可能导致成本本末倒置,其他人员使用此框架节省出的成本全被这些维护框架的人消耗殆尽。

还有个最严重的问题,EXT要用到什么程度,如果只是作为组件锦上添花型的,采用服务端生成JS代码的方式还算可行。如果是为了进一步提高客户体验,减少不必要的网络开销,势必要采用模块化的设计,单个模块往往就是一个OPOA,此时这种服务端生成JS代码的方式根本就是不好使的。这个问题归根结底是,页面UI逻辑有相当一部分是属于页面上的动态信息的交互,就应该用最直接最简单的方式直接实现这类千变万化的页面逻辑。

例,假设页面布局分成左右2个区域,左边是添加好友界面,右边是显示已添加好友列表,当左半边用户添加一个好友以后,最理想的数据操作就是发送一个Ajax请求给服务端,添加一个好友成功后返回成功信息,然后客户端回调一个函数用来在右边的好友列表中增加一个刚才添加的好友信息。然后左边的界面模块自动切换成给这个好友发送站内消息的界面,如果客户再做一个发送站内消息的操作,老样子,服务端接收发送操作,成功后返回成功信息,然后客户端回调一个函数更新右边好友列表中的相应好友的状态,搞个图标表示信息发送成功未查看状态。

这种细粒度的用户UI交互设计,如果是直接JS编程的话,成本是非常低的,如果此时一定要把这个操作封装成服务端生成的组件,绝对是吃力不讨好的,因为封装调试相对于直接JS编程是需要高额成本的,而且这种业务逻辑没有重用性可言,根本不值得封装成页面组件。而由于采用了类似于GWT的这种服务端生成JS代码的框架,反而是必须要封装,就变成为了封装而封装了,封装粒度不对。

EXT的整体架构已经非常优秀,充分利用了JS的特性,使得编程难度降低不少,代码量也不多,也可以充分利用ext的OO特性进行组件封装。
80 楼 top_erp 2008-11-29  

   ExtJS架构已经不仅仅是一个VIEW解决方案,更可以说是WEB开发的一个很好的平台,ExtJS很好的融合了AJAX技术,可以很容易让前后台融为一体。同时Extjs对JSON很好的支持,让我们很容易使控件与数据绑定。更奇妙的是Extjs提供了多种获得远程数据的手段,毫不夸张的ExtJS与Struts中MC配合的实在是太好了。
   Web企业级应用中对页面的要求较高。ExtJS丰富的组件为我们提供了方便。随着探索的深入,发觉ExtJS以不仅仅解决了页面问题,让人感到C/S味道:数据的绑定与交互是那么的方便!
  Ext与Struts、spring、dwr、json基本上是无缝的、平滑的。
  性能?搞笑,系统的最大的性能在业务层面。没做过千万元级的大项目,不要谈性能,不然让人可笑。

  Ext不存在JS编程问题,其实通过XML配置+spring可以自动生成Ext的脚本。

 


79 楼 happylcq 2008-11-11  
现在没有哪家公司能独大,微软不行,ADOBE更不行,所以我用EXT,flex我也用,只是用chart...
78 楼 cheng022074 2008-11-07  
jacklondon 写道
"对于添加一条记录,然后,刷新一下列表做法,简直是对服务器端资源的滥用"----反对!!!!
大多数人写程序,其服务器资源利用率都不高。不要忘了,有多少人的服务器有 google/yahoo 的用户量? 绝大多数人都没有!
所以我一直认为 AJAX 类似于 EJB 一样,对于多大数人是不适用的一项技术。

市场归市场,技术归技术,脱脑了市场,再好的技术也是白搭,EJB与AJAX现在都在拼命的用,我们能做的,只是让他运行的更好
77 楼 czwlucky 2008-11-06  
ppkosd 写道

第一,...大家知道,AJAX一经推出,其效能问题一直是所有从事AJAX开发人员的一块心病,但其实很简单,掌握一条即可,"尽可能减少服务器端资源的调用",好,这样的话,对于添加一条记录,然后,刷新一下列表做法,简直是对服务器端资源的滥用.因此,在数据交互方面,我认为AJAX的软肋,也是EXTJS的缺点,因此,在此点上开发,才是EXTJS开发的重点.
...

传统的开发方式上,也有很多是这样的状况,在添加了一条新记录后,转到了列表页面,对于数据库的请求和上面说的是一样的多的,只是请求到的内容不仅仅是列表中的数据了,包括新的页面本身。“对于添加一条记录,然后,刷新一下列表做法,简直是对服务器端资源的滥用”,其实这个并不是Ajax的问题,是包括所有方式都要遇到的问题,请问楼主是如何处理这样的问题呢?有时客户可能就希望在新加记录后,到列表中看一看,这个该如何处理?传统的问题解决了,Ajax的问题也就解决了。
76 楼 kelvin1984 2008-10-30  
xingqiliudehuanghun 写道

使用ext最大的障碍就是展现速度慢,而且内存泄漏严重,用的多了会比较卡,我曾经写了一个ext界面因为速度慢,经理没让用。至于和什么后台交互那就没什么大不了的,反正都是ajax调用,返回json或xml,只是写法稍有些区别。

技术不成熟,用起来当然慢!!
75 楼 xingqiliudehuanghun 2008-10-16  
使用ext最大的障碍就是展现速度慢,而且内存泄漏严重,用的多了会比较卡,我曾经写了一个ext界面因为速度慢,经理没让用。至于和什么后台交互那就没什么大不了的,反正都是ajax调用,返回json或xml,只是写法稍有些区别。
74 楼 lzycxy 2008-10-15  
一群人在说Ext的性能、效率问题,没一个人拿了证据出来,真原始。
Ext在内网用起来性能还是可以接受的,至少客户没说性能方面有问题。
73 楼 aoaoao 2008-10-13  
我发现楼主说的3条都不太对,我也懒的写字,直接投个隐藏8.
72 楼 imlsq 2008-10-12  
EXTJS,这套东西,还有人在用!!!

如果是做企业应用开发,还是选择flex ,或者sl吧。

EXTJS这个东西,根本就不值得拿出来讨论嘛,先天的基础不足。
71 楼 peak 2008-10-10  
EXTJS用来做内网的管理系统绝对没问题
70 楼 bookong 2008-10-08  
ppkosd 写道


第三,认为EXTJS就是一个界面改良,在项目中,我仍然用N张页面,在N张页面,部署EXTJS.这个我不用多讲,效率问题大家都看得出来,EXTJS是一个集成开发工具,注定他的开发包很大,一个500多K的JS文件,你究竟打算让它下载多少次?!应该说,EXTJS不仅是一个AJAX开发框架,也是一个富客户端开发平台,AJAX是可以部署到多个页面,而完整的EXTJS是不能这样的做的,但是,他却能和FLEX一样,在一张页面中,完成项目中所有事件,这时有人说,这样JS文件不是就更多吗?!是的,但是,我们有压缩打包工具,可以将其打包成一个JS文件,我们可以将其部署在网络上,也可以象RIA一样,安装机器上,使用AIR技术即可.如果你只想进行在Windows机器上,那就也不用麻烦使用AIR技术,直接改成后缀名变成HTA,你的程序就变成单机版了.

以上尽是一家之言,不管有没有不对的地方,我们已经在这些观点上进行了丰富的实战,事实证明,在一定范围内,是可用的,也是可行的.

原帖:http://www.dojochina.com/index.php?q=node/912


这一条说的非常有道理,之前我们有个项目,其实就是用了Ext的 Ext.MessageBox.wait 结果好多页面都要包含他,后来我仿造Ext写了一个挡住屏幕的透明div把这部分代码替换掉了,当时我也感觉Ext不是这么用的,但没有想楼主想的那么多。
69 楼 kimmking 2008-10-03  
guangzhougd 写道
extjs 对于初次数据显示很成问题,我开发的项目还是使用传统的HTML生成数据,javaScript类库多用JQuery。

ls不妨把自己遇到的“extjs 对于初次数据显示很成问题”描述清楚下。
大家讨论下能不能解决,我们都没有遇到这样的问题。
68 楼 guangzhougd 2008-10-03  
extjs 对于初次数据显示很成问题,我开发的项目还是使用传统的HTML生成数据,javaScript类库多用JQuery。
67 楼 tianmo2008 2008-10-02  
zhouky4665 写道
EXTJS是一个集成开发工具,是吗?最多算个sdk吧,仅仅是一个类库而已。

就是因为他是一个有用的类库,才显得他重要,编程这专业,如果没有一些通用的类库出现,什么东西都要自己重新写,效率永远提不上去,更不可能工程化.
试问现在那门编程语言不要引进大量的第三方类库.
66 楼 cheng022074 2008-10-02  
one page one application,这种方式在富客户端很实用的,象flash,flex,sliverlight都是基于这样的概念,只不过,这些工具开发工具比较好,界面与逻辑分解比较好.EXTJS现有的开发工具也开始进行这样的体系改造.只不过,目前的问题,对于大量JS脚本的管理与维护,大多数国人表现无力,再加上没有一些快速开发工具的支持,且大部分EXTJS应用没有根据其标准组件化编程要求,使得大多数EXTJS代码难以管理与维护.我想,大家争来争去,无非也就是这个问题.不过,我想,在期待其变成一个更好的框架之前,我们是不是应该静下心来,为这个大家为之争论的框架,加一点我们的代码以体现各自的观点呢?

相关推荐

    extjs4.0.7附带的jsb3文件,已修正路径错误

    值得注意的是,虽然EXTJS 4.0.7已经是一个较老的版本,但了解如何使用JSB3文件对于理解EXTJS的优化流程仍然很有价值。随着EXTJS版本的更新,例如EXTJS 6及以上版本,JSB3文件逐渐被SASS(Syntactically Awesome ...

    extjs资料extjs资料extjs资料

    1. **Ext 中文文档.chm**:这可能是一个包含ExtJS API的中文帮助文件,对于初学者和有经验的开发者来说都是极有价值的参考。在其中,你可以找到ExtJS类库的详细说明,包括各种组件、方法、事件和配置选项,有助于...

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败。ExtJS4 已完全重新写 grid ...

    Extjs例子Extjs例子

    Extjs例子Extjs例子Extjs例子Extjs例子Extjs例子

    EXTJS应用EXTJS应用EXTJS应用EXTJS应用

    EXTJS是一种基于JavaScript的前端开发框架,用于构建富互联网应用程序(RIA)。EXTJS的应用主要体现在其强大的组件模型、丰富的用户界面以及高效的数据显示上。EXTJS提供了大量的预定义组件,如表格、面板、菜单、...

    Extjs 2.2 Extjs 3.21 js

    这两个版本在Web开发领域都有着广泛的运用,它们各自拥有不同的特性和改进,对于理解ExtJS的发展历程和选择适合项目需求的版本至关重要。 首先,我们来看ExtJS 2.2。这个版本是ExtJS早期的一个稳定版,发布于2008年...

    extjs图标大全extjs图标大全extjs图标大全extjs图标大全

    ExtJS图标大全是一个集合了多种图标的资源库,特别适合用于Web开发,尤其是使用ExtJS框架构建用户界面时。ExtJS是一款强大的JavaScript UI框架,它提供了丰富的组件和工具,帮助开发者构建功能丰富的、响应式的Web...

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...

    extjs-OA extjs-oa

    一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门

    ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...

    ExtJS2.0教程.chm +Extjs2.2.1压缩包

    ExtJS 是一个流行的JavaScript库,专门用于构建富客户端Web应用程序。这个压缩包包含了关于ExtJS 2.0的教程以及ExtJS 2.2.1的资源,这为我们提供了学习和开发基于ExtJS的应用程序的基础。 `ExtJS2.0教程.chm`:这是...

    ExtJs学习笔记 ExtJs Api

    适合ExtJs开发人员extjs技术上手以及深入

    ExtJS项目 一个博客系统

    ExtJS项目 一个博客系统 ExtJS项目 一个博客系统

    extjs icon小图标

    总的来说,这个"extjs icon小图标"资源对于那些使用ExtJS或EasyUI的开发者来说非常有价值,它提供了一个丰富的图标库,可以极大地提高开发效率,同时提升应用的视觉品质。合理地利用这些图标,可以创建出专业、用户...

    ExtJS经典皮肤集合

    ExtJS是一款功能强大的JavaScript前端框架,它为开发者提供了构建富客户端Web应用的工具。这款框架以其丰富的组件库、可定制的界面和强大的数据绑定机制而闻名。标题中的"ExtJS经典皮肤集合"指的是该框架中包含的一...

    ExtJS2.0简明教程

    ExtJS 是一个很不错的Ajax 框架,可以用来开发带有华丽外观的富客户端应用,ExtJS 是一个用javascript 编写,与后台技术无关的前端ajax 框架。可以把ExtJS 用在.Net、Java、Php 等各种开发语言开发的应用中。教程...

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

    extjs收费文档extjs

    extjs的收费文档,需要的看看。 一个入门的很好教程。 extjs的收费文档,需要的看看。 一个入门的很好教程。

    extjs技术文档资料

    而“逃学大乱斗V3.4最终版.w3x”看起来并不直接相关,它更像是一个Warcraft III的游戏地图文件,可能是在错误的文件夹中被包含进来,或者是一个与EXTJS无关的个人项目。 总的来说,这份EXTJS技术文档资料将帮助...

Global site tag (gtag.js) - Google Analytics